2015-03-13 83 views
1
<s:select name="carTypeIds" 
      list="carTypes" 
      listKey="carTypeId" 
      id="selectTypes" 
      key="carTypeId" size="4" 
      listValue="name" 
      headerKey="" 
      headerValue="All" 
      multiple="true" 
      value="%{carTypeIds}" 
      label="Car Types" 
/> 

這裏carTypes的類型是汽車含性能carTypeId(長)名稱(字符串)的名單。Struts2的:無法設置多個默認選擇爲支柱選擇標籤

carTypeIds字符串包含我想默認選擇的carTypeIds的數組。爲什麼它不起作用?當我做

<s:property value="%{carTypeIds}" /> 

我能夠打印carTypeIds。 新的支持,任何幫助將appriciated。

+1

還要確保你把所有的getter和setter你需要...;) – 2015-03-13 16:11:15

回答

1

你的代碼看起來很好,除了爲key屬性:它是用來預置namevaluelabel都在一次屬性,都具有相同的價值。由於您需要不同的值並已預設它們,請刪除key屬性。從the docs

關鍵:設置鍵(名字,值,標籤)這個特定組件

此外,還要確保您的carTypeIds包含相同類型的鍵的對象,或者等號可能會失敗(例如Long VS int):

多個:創建多個選擇。如果通過值屬性將值作爲數組或集合(適當類型)傳遞,則標記將預先選擇多個值。如果關鍵之一等於在集合或數組中的一個值就西港島線進行選擇

PS:注意:headerKey不應該是空白......

+0

刪除了**鍵**屬性,仍然無法使用!是否因爲carTypeIds(value)是String數組而且carTypeId(listKey)很長? – Abhijeet 2015-03-16 07:19:44

+1

@Abhijeet:是的,這是因爲類型不匹配。改變你的'carTypeIds(value)'爲long-s的集合,它應該工作。 – 2015-03-16 07:46:27

+1

@Abhijeet是的,正如我在答案中寫的:確保它們屬於同一類型 – 2015-03-16 09:06:18