2016-10-15 3 views
0

Hallo all ich möchte Liste von Objekten in Sitzungsobjekt speichern. Zum Speichern von 1 obj ich diesen Code haben:Store Liste von Objekten in Session/HttpSession Objekt im Frühjahr

@Controller 
@SessionAttributes("temp") 
@RequestMapping(value = "/test") 
public class TestController { 
    @ModelAttribute("temp") 
    public Temp setObj() { 
     return new Temp(); 
    } 

    @RequestMapping(method = RequestMethod.GET) 
    public String test(Model model) { 
     model.addAttribute("temp", new Temp()); 
     return "testInput"; 
    } 

    @RequestMapping() 
    public String add(@ModelAttribute("temp") Temp temp, Model model) { 
     model.addAttribute("temp", temp); 
     return "test"; 
    } 

    @RequestMapping(value = "/get") // or "/getList" to ensure it works 
    public String kek(@ModelAttribute("temp") Temp temp, Model model) { 
     model.addAttribute("temp", temp); 
     return "test"; 
    } 
} 

Wo

class Temp implements Serializible { 
    //constructor fields, methods 
} 

P. S. Speichern von 1 Objekt funktioniert gut.

Aber wie kann ich List<Temp> in Session-Objekt speichern und zusätzliche Temp Obj mit Controller hinzufügen? Oder vielleicht sollte ich verwenden smth wie:

class TempList { 
    private List<Temp> list 
    //constructor, get/set addToList methods 
} 

Wenn ja, wie kann ich diese Klasse init und tempListObj.addToList(Temp temp) Methode verwenden?

+0

Was bedeutet es "init diese Klasse"? – eg04lt3r

Antwort

1

Zu Ihrer Information, wenn Ihr Speicherobjekt eine Sitzung mit @SessionAttributes-Annotation durchführt, damit dieses Objekt nur im Rahmen dieses Controllers verfügbar ist. Wenn Sie Liste auf Sitzung speichern möchten, können Sie einfach definieren @SessionAttributes ({ „temp“}) auf Klassenebene, und setzen Sie diese in die Sitzung in jedem Controller-Methode wie folgt aus:

model.addAttribute("temp", new ArrayList<Temp>()); 

Dann können Sie Zugang erhalten dazu auf diese Weise:

public String someMethod(@ModelAttribute("temp") List<Temp> temp) {...} 
+0

'@RequestMapping (method = RequestMethod.GET) öffentlicher Stringtest (Modellmodell) { model.addAttribute (" tempObj ", new Temp()); model.addAttribute ("list", neue ArrayList ()); Rückgabe "testInput"; } @RequestMapping() public String add (@ModelAttribute ("temp") Liste Liste, @ModelAttribute ("tempObj") Temp temp, Modell Modell) { list.add (temp); model.addAttribute ("liste", liste); Rückgabe "Test"; } ' –

+0

Ich habe Code wie folgt hinzugefügt, aber ich habe' Erwartetes Sitzungsattribut 'temp'', aber ich habe 'model.addAttribute (" temp ", neue ArrayList ())' –

+0

hinzugefügt Ich bin froh, dass Ihnen geholfen hat . – eg04lt3r

Verwandte Themen