我在JSP中显示一个列表,如下所示:
<%@page contentType="text/html;charset=UTF-8"language="java"pageEncoding="UTF-8"%> <%@taglib prefix="s"uri="/struts-tags"%> <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>xxx</title> <link rel="stylesheet" href="style.css"/> </head> <body> <s:form name="tableForm"method="post"> <th> <s:submit action="verify" key="Add"></s:submit> </th> <s:hidden name="propagateList" value="%{formList}"/> <table border="1"> <tr> <th >ID</th> <th>Name</th> <th>Status</th> <th>Type</th> <th>System</th> </tr> <s:iterator value="formList"> <tr> <td><s:checkbox name="checked" fieldValue="%{#attr.ID}" theme="simple" ></s:checkbox> </td> <td><s:property value="NAME"/></td> <td><s:property value="STATUS"/></td> <td><s:property value="TYPE"/></td> <td><s:property value="UNIT"/></td> </tr> </s:iterator> </table> </s:form> </body> </html>
在这里,当我单击“ 添加”* 按钮时,我想将列表 formList 传递给另一个动作,而不必点击数据库来再次获取列表 formList 。 ***
我尝试使用, <s:hidden name="propagateList" value="%{formList}"/>但不起作用。
<s:hidden name="propagateList" value="%{formList}"/>
该列表包含1000多个记录,因此有没有办法在不使用会话的情况下将该列表从jsp传递到Struts 2中的另一个动作?
要回答“如何在不使用会话的情况下将列表从ActionA传递到ActionB”的问题,请执行以下操作:
List<String>
<s:iterator value="formList" status="row"> <s:hidden name="formList[%{#row.index}]" /> </s:iterator>
这将遍历整个List,并<s:hidden/>为List的每个元素生成一个元素;这样,您可以将未更改的列表从一个操作传递到另一个。
<s:hidden/>
List<Object>
```
就像以前一样,这将遍历整个List,为List的每个对象生成五个元素。 使用此概念,您可以使用交互式标签(文本字段,选择等)代替只读标签(隐藏,属性等)来更改列表:
<s:iterator value="formList" status="row"> <s:hidden name="formList[%{#row.index}].id" /> <s:textfield name="formList[%{#row.index}].name" value="name" /> <s:hidden name="formList[%{#row.index}].status" /> <s:property value="status" /> <s:textfield name="formList[%{#row.index}].type" value="type" /> <s:textfield name="formList[%{#row.index}].unit" value="unit" /> </s:iterator>
当然,您的列表将很容易受到客户端更改的影响,每个能够按F12键的用户都将能够修改您的列表,那么您应该小心。
你可以,例如,只放了 ID ■在会议 ,注入JSP中的列表,接收数据,然后回时,匹配 ID * S的名单从网页来与 ID *在会话中,用于检查发布的数据的完整性(无新ID,无双ID等)