Jakarta ee Struts2:无法为struts select标记设置多个默认选择
这里的carTypes是类型Car的列表,包含属性carTypeId(long)和name(String) cartypeid是一个字符串数组,其中包含默认情况下要选择的cartypeid。为什么它不起作用?当我这样做的时候Jakarta ee Struts2:无法为struts select标记设置多个默认选择,jakarta-ee,struts2,Jakarta Ee,Struts2,这里的carTypes是类型Car的列表,包含属性carTypeId(long)和name(String) cartypeid是一个字符串数组,其中包含默认情况下要选择的cartypeid。为什么它不起作用?当我这样做的时候 <s:select name="carTypeIds" list="carTypes" listKey="carTypeId" id="selectTypes" key="ca
<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"
/>
我可以打印cartypeid。
对于struts来说,任何帮助都是值得的。您的代码似乎很好,除了
键
属性:它用于一次性预设名称
、值
和标签
属性,所有属性都具有相同的值。由于您需要不同的值并且已经预设了它们,请删除键
属性。发件人:
键:设置此特定组件的键(名称、值、标签)
还要确保您的cartypeid
包含与密钥相同类型的对象,否则对等项可能会失败(例如Long
vsint
):
多个:创建多个选择。如果通过value属性将值作为数组或集合(适当类型)传递,则标记将预先选择多个值。如果其中一个键等于集合或数组中的一个值,则将选中该键
注意,
headerKey
不应为空…还要确保您拥有所有需要的getter和setter…;)已删除密钥属性,仍不工作!是因为carTypeId(value)是字符串数组,而carTypeId(listKey)是长的吗?@Abhijeet:是的,是因为类型不匹配。将您的carTypeIds(value)
更改为long-s的集合,它应该可以工作。@Abhijeet是的,正如我在回答中所写:确保它们的类型相同是的,它可以将类型更改为long。谢谢你超人:):)!!
<s:property value="%{carTypeIds}" />