簡體   English   中英

使用Struts2將數組列表從JSP頁面的隱藏字段轉換為動作類

[英]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直接放入inputs:hidden ,這是DOCUMENT ,屬性value應為字符串。 如果您打算這樣做,則必須使用Struts2 Type Conversion

解決問題的最簡單方法是將列表放入會話中。 這是鏈接SessionAware

您不應該將Java變量設置為html字段以進行緩存/存儲。 由於使用的是Struts,因此可以將此ArrayList變量存儲為表單bean的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM