Standard-Objekte in spring 3 mvc SessionAttributes, wenn die Sitzung abgelaufen ist
Ich glaube ich bin verwirrt ein bisschen über die Sitzung Annotationen in spring mvc.
Habe ich code wie diesen (2 Schritte form-Beispiel, Schritt 1-Benutzer-Daten, Schritt 2-Adresse)
@SessionAttributes({"user", "address"})
public class UserFormController {
@RequestMapping(method = RequestMethod.GET)
public ModelAndView show( ModelAndView mv ){
mv.addObject( new User() );
mv.addObject( new Address() );
mv.setViewName("user_add_page");
return mv;
}
@RequestMapping(method = RequestMethod.POST)
public String processForm( User user, BindingResult result ){
new UserValidator().validate(user, result);
if( result.hasErrors() ){
return "user_add_page";
}else{
return "redirect:/user_form/user_add_address";
}
//.........
}
Nun, wenn ich behaupte, dass die Seite nach meiner Sitzung abläuft, bekomme ich Fehler
org.springframework.web.HttpSessionRequiredException:
Session-Attribut 'Anwender' erforderlich -
nicht gefunden in der Sitzung
Wie kann ich das umgehen? ich hätte gerne 2 Optionen
- ich erstellen Sie leere Objekte, wenn Sie fehlt in der session und akzeptieren Einreichen
- ich vorwärts wieder auf user form mit etwas Nachricht
Bin immer noch in der frühen Phase des Lernens Frühling also sorry, wenn das etwas sehr offensichtlich, ich kann nicht sehen es.
ps. ist, dass auch die gute Möglichkeit zur Lösung dieser Art von form in spring mvc oder würden Sie empfehlen anderen Ansatz?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
@ModelAttribute("user")
-annotierten Methode zum bereitstellen der Standard-WertVerwenden
@ExceptionHandler(HttpSessionRequiredException.class)
-annotierten Methode@ModelAttribute
zu denUser
Attribut in derprocessForm
Methode.Prüfen Sie hier:
http://forum.springsource.org/showthread.php?t=63001&highlight=HttpSessionRequiredException
Entsprechend der Spring 3.0 Referenzhandbuch, es sieht aus wie @SessionAttributes sollte verwendet werden, auf eine Art, die Sie wollen, gespeichert werden transparent in der Sitzung, wie ein "Befehl" oder ein form-Objekt sichern. Ich glaube nicht, dass Sie möchten, um zu speichern, einen Controller in der Sitzung.
@SessionAttributes
ist für die Konfiguration, die Objekte, die Sie speichern möchten in der Sitzung. Es nicht darauf hin, daß der Controller ist session gebunden ist (dafür gibt es eine@Scope
annotation).