Le site @SessionAttribute
Annotation, die @uthark erwähnt hat, ist für diese Aufgabe nicht geeignet - das dachte ich auch, aber eine kleine Lektüre zeigt das Gegenteil:
Sitzungsattribute wie angegeben mit diese Anmerkung angegeben werden, entsprechen den den Modellattributen eines bestimmten Handlers, werden transparent in einer Konversationssitzung gespeichert. Diese Attribute werden entfernt, sobald der Handler die Beendigung seiner Konversationssitzung anzeigt. Daher sollten Sie diese Möglichkeit für solche Gesprächsattribute Attribute, die in der Sitzung in der Sitzung zwischengespeichert werden sollen während des Verlaufs eines bestimmten Konversation des Handlers gespeichert werden sollen.
Für permanente Sitzungsattribute, z.B. ein Benutzerauthentifizierungsobjekt, verwenden Sie die traditionelle session.setAttribute Methode stattdessen. Alternativ dazu, erwägen Sie die Verwendung der Attribut Management Fähigkeiten der generischen WebRequest-Schnittstelle.
Mit anderen Worten, @SessionAttribute
ist für die Speicherung von Konversation MVC-Modell-Objekte in der Sitzung (im Gegensatz zu speichern sie als Anforderung Attribute). Es ist nicht für die Verwendung mit beliebigen Session-Attributen gedacht. Wie Sie entdeckt haben, funktioniert es nur, wenn das Session-Attribut immer vorhanden ist.
Mir ist keine andere Alternative bekannt, ich denke, Sie müssen sich mit HttpSession.getAttribute()