从struts2中的iterator中的checkbox中获取值

时间:2016-02-19 15:22:05

标签: jsp checkbox struts2 iterator

我在迭代器中有一个复选框,位于jsp页面中。无论我尝试什么,复选框标签的属性值都保持'true'值,即使字段值的值是我想要的值。但我无法取回它。我只是'真实'。

 <s:iterator
    id="pieceJointe"
    value="listePiecesJointesTrouvees">
    <tr height="30">
        <td>
            <s:property value="codeDemande" />
        </td>
        <td
            headers="actions"
            class="center">         
            <s:checkbox 
            value="%{chemin}"
            fieldvalue="%{chemin}"                      
            name="checkbox" /> 
        </td>           
    </tr>
</s:iterator>

使用fieldset属性获取的变量chemin是我想要的。我可以通过Web Inspector看到它,但我无法在代码中看到它。我只回到'价值'变量的值,这是绝对“真实”的价值。

1 个答案:

答案 0 :(得分:0)

使用iterator标记填充包含复选框等输入元素的页面时,可以使用value属性预选复选框的状态。 fieldValue与用于设置生成的HTML复选框的实际值不同,但s:checkbox是复合标记,还有HTML复选框标记,它还会生成隐藏字段并设置字段值进入它。因此,您不必将valuefieldValue与列表中的值一起使用。

再次使用iterator标记和列表以及提交这些值的要求。您应该使用索引属性名称。此索引名称在请求中用作参数的名称,并允许通过params interceptor填充到操作类的list属性。

<s:iterator
    id="pieceJointe"
    value="listePiecesJointesTrouvees" status="status">
    <tr height="30">
        <td>
            <s:property value="codeDemande" />
        </td>
        <td
            headers="actions"
            class="center">         
            <s:checkbox 
            value="%{chemin}"
            name="listePiecesJointesTrouvees[%{#status.index}].chemin" /> 
        </td>           
    </tr>
</s:iterator>  

确保使用包含checkbox interceptor的默认拦截器堆栈。此拦截器需要填充未选中的值。