0

我想做多行选择。通过strut2标签s:iterator显示行,我怎样才能得到选择信息,它应该包含一个选定的“id”列表

<s:form action='Selection'>
<s:iterator value="transInfos"> 
  <input type='hidden' name=id value='<s:property value="id" />' />
  <s:checkbox name="selected"/>
  <s:property value="name" />
</s:iterator>
<s:submit value="Selection" />
</s:form>
4

2 回答 2

0

在我看来,一种选择是在您的表单中创建一个隐藏字段,例如

<s:form action="selection">
<input type='hidden' name="selectedId" value=""/>
</s:form>

您可以将点击事件添加到您的复选框,如果它被选中,您可以添加值 ta 变量并在隐藏字段中设置,每个新添加都应该以逗号分隔的方式添加为新值,就像在结尾隐藏字段中一样应该像

<input type='hidden' name="selectedId" value="1,2,3,4"/>

提交表单的那一刻,您可以解析表单值并根据分隔符对其进行拆分","

另一种选择是将复选框命名为相同的名称,以便在提交时将选中的值作为集合提交,选择权在您手中,您需要决定走哪条路

于 2012-09-03T13:49:33.940 回答
0

我很高兴我能自己回答这个问题。答案很简单。

<s:form action="..." >
 <s:iterator value="transInfos">
  <input type="checkbox" name="transIds" value='<s:property value="transID" />'/>
 </s:iterator>                          
 <s:submit value="Select"/>
</s:form>

复选框的值是您要传递给动作的值,所有选中的复选框都会将它们的值作为列表传递给动作。

于 2012-09-04T06:45:13.177 回答