我正在显示一个列表作为复选框。在此,应根据数据库值预先检查一些复选框。
如果我使用复选框列表,我可以实现此目的,但我只能在复选框后显示一个属性(listValue
)。我需要在复选框后显示多个属性。
<s:checkboxlist list="myList" name="checkboxes" listKey="id" listValue="name" value="selectedList"/>
此处myList
有可用的复选框,selectedList
包含应预先设定的密钥
那么如何使用迭代器中的复选框实现相同的功能......? 我试图显示可用复选框的代码是......
<s:iterator value="myList" var="record">
<s:checkbox name="id" value="%{#record.id}"/>
<s:property value="#record.name"/>
<s:property value="#record.description"/>
</s:iterator>
答案 0 :(得分:2)
使用<s:checkboxlist>
标记,您只需在listValue
属性中连接属性。
<s:checkboxlist list="myList"
name="checkboxes"
listKey="id"
listValue="name +' '+ description"
value="selectedList" />
如果您希望自己迭代列表,请使用list的contains
方法将一些复选框设置为已选中。
请注意,value
标记的<s:checkbox>
属性用于设置是否选中复选框。要设置将发送到服务器的值,您需要使用fieldValue
属性。
<s:iterator value="records" var="record">
<label>
<s:checkbox name="id"
fieldValue="%{#record.id}"
value="selectedList.contains(#record.id)" />
<s:property value="#record.name" />
<s:property value="#record.description" />
</label>
</s:iterator>
不要忘记标签,通过使用它们,您可以通过单击标签文本来检查复选框。