Default objects in spring 3 mvc SessionAttributes when session expired
Solution 1
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
Solution 2
Try to check here:
http://forum.springsource.org/showthread.php?t=63001&highlight=HttpSessionRequiredException
@Controller
@RequestMapping(value="/simple_form")
@SessionAttributes("command")
public class ChangeLoginController {
@ModelAttribute("command")
public MyCommand createCommand() {
return new MyCommand();
}
@RequestMapping(method = RequestMethod.GET)
public String get() {
return "form_view";
}
@RequestMapping(method = RequestMethod.POST)
public String post(@ModelAttribute("command") MyCommand command) {
doSomething(command); // execute business logic
return "form_view";
}
}
Art79
Born developer. Born in Poland, living in Sydney after 5 years in Ireland. Web technologies in general (PHP is my specialty).
Updated on June 11, 2022Comments
-
Art79 almost 2 years
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?