从 Struts 2 迭代器内的复选框获取值

问题描述 投票:0回答:1

我在 JSP 页面的

<s:checkbox>
标签内有一个
<s:iterator>
标签。无论我尝试什么,复选框标记的属性值都会保留
'true'
值,即使字段值的值是我想要的值。但我无法收回它。我只得到
'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>

变量

chemin
,用fieldset属性返回,是我想要的。我可以使用 Web Inspector 看到它,但无法将其放入代码中。我只取回“value”变量的值,这是绝望的
'true'
值。

checkbox iterator struts2 struts-tags
1个回答
0
投票

当使用

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

再次使用

iterator
标签与列表以及提交这些值的要求。您应该使用索引属性名称。此索引名称用作请求中的参数名称,并允许通过
params
拦截器
填充到操作类的列表属性。

<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
拦截器。该拦截器需要填充 unchecked 值。

© www.soinside.com 2019 - 2024. All rights reserved.