Struts2:无法为struts select标记设置多个默认选择

时间:2015-03-13 15:51:51

标签: java-ee struts2

<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 car 类型的列表,其中包含 carTypeId(long) name(String)属性。

carTypeIds 是一个 String 数组,其中包含我想默认选择的carTypeIds。为什么不起作用?当我做的时候

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

我可以打印carTypeIds。 struts的新手,任何帮助都会受到关注。

1 个答案:

答案 0 :(得分:1)

您的代码似乎没有问题,但key属性除外:它用于预设namevaluelabel属性,所有属性都相同值。由于您需要不同的值并已预设它们,因此请删除key属性。来自the docs

  

:设置此特定组件的键(名称,值,标签)

同时确保您的carTypeIds包含与您的密钥相同类型的对象,或者等于可能失败(例如Long vs int):

  

多次:创建一个多重选择。如果值通过value属性作为Array或Collection(适当类型)传递,则标记将预先选择多个值。如果其中一个键等于Collection或Array中的一个值,则将选择它

P.S:注意headerKey不应该是空白的......