<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的新手,任何帮助都会受到关注。
答案 0 :(得分:1)
您的代码似乎没有问题,但key
属性除外:它用于预设name
,value
和label
属性,所有属性都相同值。由于您需要不同的值并已预设它们,因此请删除key
属性。来自the docs:
键:设置此特定组件的键(名称,值,标签)
同时确保您的carTypeIds
包含与您的密钥相同类型的对象,或者等于可能失败(例如Long
vs int
):
多次:创建一个多重选择。如果值通过value属性作为Array或Collection(适当类型)传递,则标记将预先选择多个值。如果其中一个键等于Collection或Array中的一个值,则将选择它
P.S:注意headerKey
不应该是空白的......