如何在Struts2迭代器中显示预先选中的复选框

时间:2015-09-16 16:54:54

标签: javascript checkbox struts2 struts-tags

我正在显示一个列表作为复选框。在此,应根据数据库值预先检查一些复选框。 如果我使用复选框列表,我可以实现此目的,但我只能在复选框后显示一个属性(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> 

1 个答案:

答案 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>

不要忘记标签,通过使用它们,您可以通过单击标签文本来检查复选框。

相关问题