I have a form which submits user first and last name using POST signin.html
@RequestMapping(value="/signin.html",method = RequestMethod.POST)
public ModelAndView submit(@Valid User user){
ModelAndView mv = new ModelAndView("redirect:signin.html");
//Business logic with user account
return mv;
}
In order to solve double submit problem I'm redirecting to the same mapping using GET request.
@RequestMapping(value="/signin.html",method = RequestMethod.GET)
public ModelAndView submitPRG(){
ModelAndView mv = new ModelAndView("submitted");
mv.addObject("message", "Submitted Correctly");
return mv;
}
This way I solve double submit problem.
I have few questions:
1) How can I know that GET request on /signin.html coming from redirect and was not requested by user in browser? I just would like to close option for user to browse http://server/signin.html and to get "Submitted Correctly" message. I know that I can add something like /signin.html?submitted=true but I would like to make it more clean.
2) is there any way to pass ModelAndView
object from submit()
to submitPRG()
?
Or simply is there any other way to use PRG in this case?