如何使用struts标记迭代器和OGNL来实现多行选择

时间:2012-09-03 07:30:07

标签: tags iterator struts selection ognl

我想做多行选择。行通过struts2标签显示:迭代器,如何获取选择信息,其中应包含所选“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>

2 个答案:

答案 0 :(得分:0)

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

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

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

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

您提交表单时可以解析表单值,并可以根据分隔符","

将其拆分

其他选项是命名具有相同名称的复选框,所以当它被提交时,已检查的值将作为集合提交,选择是你的,你需要决定走哪条路

答案 1 :(得分: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>

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