2016-03-29 26 views
0

我正在爲每個請求發送一個對象的應用程序工作。並且我必須將整個數據存儲在會話變量中。如何才能做到這一點?我發送數據到控制器和創建對象,然後試圖在一個會話存儲,但它不工作,這是我的代碼如何將每個請求中的多個對象逐個存儲在一個會話中?

MemberDependentBO memberdepinfo = new MemberDependentBO(); 

     memberdepinfo.setFirstName(getMemberFirstName().getValue().toString()); 
     memberdepinfo.setLastName(getMemberLastName().getValue().toString()); 
     memberdepinfo.setMiddleName(getMemberMiddleName().getValue().toString()); 
     memberdepinfo.setPassport(getMemberPassportNumber().getValue().toString()); 

    List<MemberDependentBO> listOfMemberAndDep = new ArrayList<MemberDependentBO>(); 

     listOfMemberAndDep.add(memberdepinfo); 

     httpSession.setAttribute("insuredInfo", listOfMemberAndDep); 

     System.out.println("List Size :"+listOfMemberAndDep.size()); 

每次當我按一下按鈕,對象從 控制器。但每次我收到列表的大小來是1.Any幫助將不勝感激

+1

那麼,你每次重新聲明和初始化'List',你期望什麼?你可能想要在方法外面定義'List'。 – Mena

+0

@Meena你能編輯我的代碼並給出正確的解決方案嗎? – born2code

+0

如果我有你的答案我會**發佈**一個,而不是編輯你的問題與我的答案!但是,您發佈的代碼片段可能不足以爲您提供可用的答案。如上所述,您應該考慮重新考慮「List」的範圍(即在方法之外)。 – Mena

回答

0

先試着拉listOfMemberAndDep從當前會話中。如果它不存在,創建它,添加memberdepinfo並保存會話。如果確實存在,只需添加memberdepinfo並重新保存會話。像這樣的東西....

List<MemberDependentBO> listOfMemberAndDep = (List<MemberDependentBO>)httpSession.getAttribute("insuredInfo"); 

if(listOfMemberAndDep == null){ 
    listOfMemberAndDep = new ArrayList<MemberDependentBO>(); 
} 

MemberDependentBO memberdepinfo = new MemberDependentBO(); 
memberdepinfo.setFirstName(getMemberFirstName().getValue().toString()); 
memberdepinfo.setLastName(getMemberLastName().getValue().toString()); 
memberdepinfo.setMiddleName(getMemberMiddleName().getValue().toString()); 
memberdepinfo.setPassport(getMemberPassportNumber().getValue().toString(); 

listOfMemberAndDep.add(memberdepinfo); 
httpSession.setAttribute("insuredInfo", listOfMemberAndDep); 
System.out.println("List Size :"+listOfMemberAndDep.size()); 
+0

請編輯我的代碼 – born2code

+0

在那裏留下System.out爲你的直接利益,但你通常會使用一個日誌API(例如Log4J,slf4j)以更好地控制印刷的內容和時間。 – MolonLabe

+0

感謝您的幫助 – born2code

相關問題