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



我想选择多行。行通过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>

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

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

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

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

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

另一种选择是用相同的名称命名复选框,这样当它被提交时,被选中的复选框的值将作为集合提交,选择权归你所有,你需要决定

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

<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>

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

最新更新