【发布时间】:2012-10-19 14:57:57
【问题描述】:
我有一个数组列表,我已将它设置到 jsp 的 hiddenField 中。现在我必须在我的操作类中访问这个列表。下面,sn-ps代码如下
我的动作类
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"/>"/>**
这出了什么问题,如何在我的行动课程中获取此列表。 任何帮助都会非常有帮助。
【问题讨论】:
-
到底什么是 setPagingList(getPagingList()); :O
-
这只是我的编码风格,这是一种不好的做法吗?
-
不,但它什么都不做......您使用该变量的当前值设置一个变量(当然,除非您在 getter 和 setter 中有业务逻辑。那将是一个不好的做法)。
标签: java list jsp struts2 hidden-field