2016-03-29 3 views
0

Je travaille pour l'application où je dois envoyer un objet par demande. Et je dois stocker toutes les données dans une variable de session. Comment puis-je faire cela? J'envoie les données dans le contrôleur et la création de l'objet puis essayer de stocker dans une session, mais il ne fonctionne pas et c'est mon codeComment stocker plusieurs objets dans une session un par un par demande?

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()); 

Chaque fois que je clique sur le bouton, l'objet vient du contrôleur .mais chaque fois que je reçois la taille de la liste est 1.Tout aide sera appréciée

+1

Eh bien, vous êtes re-déclarer et initialiser la 'List' à chaque fois, qu'attendez-vous? Vous voulez probablement étendre la 'List' en dehors de la méthode. – Mena

+0

@Meena pouvez-vous modifier mon code et donner la bonne solution s'il vous plaît ?? – born2code

+0

Si j'avais une réponse pour vous, j'enverrais ** un **, ne pas éditer votre question avec ma réponse! Cependant, le fragment de code que vous avez publié est probablement insuffisant pour vous fournir une réponse utilisable. Comme indiqué, vous devriez envisager de repenser la portée de votre 'Liste' (c'est-à-dire en dehors de la méthode). – Mena

Répondre

0

d'abord essayer de tirer listOfMemberAndDep de la session en cours. S'il n'existe pas, créez-le, ajoutez memberdepinfo et enregistrez dans la session. S'il existe, ajoutez simplement memberdepinfo et ré-enregistrez dans la session. Quelque chose comme ça ....

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

s'il vous plaît modifier mon code – born2code

+0

quitté le System.out là pour votre avantage immédiat, mais vous utiliserez généralement une API de journalisation (par exemple, Log4J, slf4j) pour obtenir plus de contrôle sur ce qui est imprimé et quand. – MolonLabe

+0

merci pour l'aide – born2code