[英]Getting arraylist from jsp page's hidden field to action class using struts2
我有一个已设置为jsp的hiddenField的arraylist。现在,我必须在我的动作类中访问此列表。 下面,代码片段如下
我的动作课
private ArrayList<TXT_File_Action> statusResult_list=new ArrayList<TXT_File_Action>();
private ArrayList<TXT_Beans> regenerateTXTList=new ArrayList<TXT_Beans>();
private ArrayList<TXT_Beans> pagingList=new ArrayList<TXT_Beans>();
private ArrayList<TXT_Beans> serverList=new ArrayList<TXT_Beans>();
public String getGenerateList()
{
for(int j=0;j<customers_accountList.size();j++)
{
dataList=txt_managerInstance.regenerateListData(id_no);
regenerateTXTList.add(dataList.get(0));
}
pagingList=getRegenerateTXTList();
setRegenerateTXTList(getRegenerateTXTList());
setPagingList(getPagingList());
return SUCCESS;
}
getters..n setters
我的JSP代码是
<s:iterator value="pagingList">
<tr>
<td align="center"><s:property value="customerId" /></td>
<td align="center"><s:property value="cspId" /></td>
<td align="center"><s:property value="branchCode" /></td>
<td align="center" id="bcID"><s:property value="bcCode"/></td>
</tr>
</s:iterator>
在下面,我在jsp隐藏字段中设置列表,如下所示:
<input type="hidden" name="serverList" id="serverList" value="<s:property value="pagingList"/>"/>
现在,当我单击某个事件时,我希望此列表在我的动作类中。 每当我在操作中尝试打印此列表serverList的大小时,都会出现以下错误:
java.lang.ArrayIndexOutOfBoundsException: -1
java.util.ArrayList.get(Unknown Source)
com.alw.action.TXT_File_Action.setPaginationList(TXT_File_Action.java:424)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
.
.
.
但是我确定我在此隐藏字段中获取了所有Arrayllist数据,因为我已经在页面上选中了它
**<input type="hidden" name="serverList" id="serverList" value="<s:property value="pagingList"/>"/>**
这是怎么回事,如何在我的行动班级中获得此清单。 任何帮助将是非常有益的。
您不能将List
或任何Object
直接放入input
或s:hidden
,这是DOCUMENT ,属性value
应为字符串。 如果您打算这样做,则必须使用Struts2 Type Conversion 。
解决问题的最简单方法是将列表放入会话中。 这是链接SessionAware 。
您不应该将Java变量设置为html字段以进行缓存/存储。 由于使用的是Struts,因此可以将此ArrayList变量存储为表单bean的一部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.