【问题标题】:Get value from checkbox inside iterator, in struts2从迭代器内的复选框获取值,在struts2中
【发布时间】:2016-02-19 15:22:05
【问题描述】:

我在 JSP 页面的迭代器中有一个复选框。无论我尝试了什么,复选框标记的属性值都保持为“真”值,即使字段值的值是我想要的值。但我无法找回它。我只会得到“真实”。

 <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 是我想要的。我可以使用 Web Inspector 看到它,但我无法在代码中使用它。我只取回'value'变量的值,它是非常“真实”的值。

【问题讨论】:

标签: jsp checkbox struts2 iterator


【解决方案1】:

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

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

<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 的默认拦截器堆栈。需要此拦截器来填充 unchecked 值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 2011-09-28
    相关资源
    最近更新 更多