2013-04-05 2 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 목록이 null이됩니다. 로드 버튼을 클릭하는 코드입니다.

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

간단! 세션에 데이터를 저장하고 업데이트가 완료되면 세션에서 데이터를 제거하십시오. 이 예에서

내가 내가 그것을 밖으로 시도합니다 키 이름에 내 세션으로 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

감사합니다 이름 myarrayList와 ArrayList에 저장하고있다. – doree007

+0

당신이 내 대답으로 문제가 해결된다고 생각한다면. 내 대답을 수락 고려하십시오 –

+0

내 arrayllist 및 hodkarraaylist 무엇입니까. 나는 단 한명의 arraylist 만있다. 나는 단 한명의 arraylist 만있다. 하지만 제 세션에는 가치가 있습니다. 이것이 제가 시도한 방법입니다. '경우 \t \t { \t \t \t session.put (getSessionKey ('사용자 이름 "), pcinitiladataList) (session.containsKey (pcinitiladataList)!); \t \t} 목록 pcinitiladataListjj; \t \t pcinitiladataListjj = (List ) session.get (pcinitiladataList); \t \t ' – doree007

관련 문제