2013-04-05 39 views
1

我已經從數據庫中加載數據爲ArrayList。然後我使用該數據進行更新。我正在搜索並將數據加載到ArrayList。這是搜索時加載數據的代碼。如何在jsp中重載頁面時保存數據struts2

System.out.println("In search job method"); 

    region ="TEST"; 
    PcinitialdataEjb pcinEjb=new PcinitialdataEjb(region); 
    pcinitiladataList = new ArrayList<Pcinitialdata>(); 

    System.out.println(hiddentableRadioButtonValue+"**************************************************************************"); 

    if(idSearchType.equalsIgnoreCase("comRef")) 
    { 
     pcinitiladataList=pcinEjb.getDataForEstNumber("510.00/EBS/12/0031","Commercial"); 
     System.out.println(idSearchType); 
    } 
    else if(idSearchType.equalsIgnoreCase("constructRef")) 
    { 

     pcinitiladataList=pcinEjb.getDataForEstNumber("510.00/EBS/12/0031","customerRef"); 
    } 
    else if(idSearchType.equalsIgnoreCase("projJobNo")) 
    { 

     pcinitiladataList=pcinEjb.getDataForEstNumber("510.00/EBS/12/0031","projNoJobNo"); 
    } 


    Pcinitialdata aa=new Pcinitialdata(); 
    aa.setDecrp("doorwerfxcv"); 
    pcinitiladataList.add(aa); 
    System.out.println(pcinitiladataList.toString()); 
    for(int i = 0; i < pcinitiladataList.size(); i++) { 

     if(i==0) 
     System.out.print(pcinitiladataList.get(i)); 


     if(i==1) 
     System.out.print((String)pcinitiladataList.get(i).getDecrp()); 
    } 

此代碼完美工作。我的問題是在我將數據加載到jsp表後,我使用單選按鈕選擇原始數據。然後我點擊加載按鈕來加載數據到界面。但我的問題是,當我點擊加載按鈕時,pcinitialdata列表變爲空。 這是加載按鈕單擊的代碼。

public String loadValuesForPage() 
{ 
    if(pcinitiladataList.equals(null)) 
    { 

     String resrult=searchJob(); 
    } 

    for(int i = 0; i < pcinitiladataList.size(); i++) { 
     if((hiddentableRadioButtonValue.equalsIgnoreCase(pcinitiladataList.get(i).getEstNo()))) 
     { 

      Pcinitialdata estNoObject=new Pcinitialdata(); 
      estNoObject=pcinitiladataList.get(i); 

      fileNo=estNoObject.getEstNo(); 
     } 
    } 


    return SUCCESS; 
} 

我怎麼能持有數據,直到我完成我的更新過程?

當我點擊更新按鈕,我的arrayList變爲null。在完成更新過程之前,是否有任何方法來保存這些數據?我可以使用Hoshmap來做到這一點?

回答

1

簡單!將數據存儲到會話中,更新完成後,從會話中刪除數據。

在這個例子中,我存儲與名myarrayList一個ArrayList的進入我的會議與鍵名holdarrylist

if (!session.containsKey(holdarrylist)) 
{ 
// Place the arraylist into the session eg. myarrayList 
session.put(myarrayList, holdarrylist); //myarrayList is your arraylist ato be kept in the session with the name holdarrylist 
} else { 

    ArrayList<Integer> list = (ArrayList<Integer>) session.get("holdarrylist"); 
    list.add(1 /* Do here what ever you want */); 
// Retrieve session data 

    -------------- 
    //--do your updation work---- 
    //after remove the arraylist from session 
    //session.remove("holdarrylist"); 
} 
+0

謝謝,我會嘗試一下它。 – doree007 2013-04-05 09:07:50

+0

如果你認爲你的問題是通過我的答案解決的。請考慮接受我的回答 – 2013-04-05 09:21:28

+0

什麼是我的arrayllist和hodkarraaylist。我只有一個數組列表。我只有一個數組列表。但我的會話中有價值。這是我嘗試的方式。 「如果 \t \t { \t \t \t session.put(getSessionKey( 「username」 的),pcinitiladataList)(session.containsKey(pcinitiladataList)!); \t \t} List pcinitiladataListjj; \t \t pcinitiladataListjj =(List )session.get(pcinitiladataList); \t \t ' – doree007 2013-04-05 10:46:51

相關問題