Default objects in spring 3 mvc SessionAttributes when session expired

java, session, spring, spring-mvc

Solution

1.i create empty objects if missing in session and accept submit

Use `@ModelAttribute("user")`-annotated method to provide the default value

2.i forward back to user form with some message

Use `@ExceptionHandler(HttpSessionRequiredException.class)`-annotated method

Problem

I think im confused a bit about session annotation in spring mvc. I have code like this (2 steps form sample, step 1 user data, step 2 address) ``` @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"; } // ......... } ``` Now if i submit page after my session expires i get error org.springframework.web.HttpSessionRequiredException: Session attribute 'user' required - not found in session How do i handle it? i would like to have 2 options - i create empty objects if missing in session and accept submit - i forward back to user form with some message Im still in early stage of learning Spring so sorry if its something very obvious, i just cant see it. ps. is that even the good way to solve this kind of form in spring mvc or would you recomment different approach?

Original source