Creo que estoy un poco confundido sobre la anotación de la sesión en mvc de primavera.Objetos por defecto en la primavera 3 mvc SessionAttributes cuando la sesión expiró
tengo código como este (2 pasos forman la muestra, los datos del paso 1 por el usuario, paso 2 de direcciones)
@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";
}
// .........
}
Ahora si presento la página después de mi sesión expira me sale error
org .springframework.web.HttpSessionRequiredException: sesión atributo 'usuario' - no se encuentra en sesión
¿Cómo lo manejo? me gustaría tener 2 opciones
- i crear objetos vacíos si falta en la sesión y aceptar someterse
- i hacia adelante de nuevo a forma usuario con algún mensaje
Im todavía en las primeras etapas de la primavera de aprendizaje lo siento si es algo muy obvio, simplemente no puedo verlo.
ps. ¿Es esa la mejor manera de resolver este tipo de forma en spring mvc o recomendaría un enfoque diferente?
Junto a eso agregue '@ ModelAttribute' al atributo' User' en el método 'processForm'. –