Как передавать данные между запросами шаблона Post / Redirect / Get в Spring MVC?

У меня есть форма, которая отправляет имя и фамилию пользователя с помощью 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;
 } 

В чтобы решить проблему двойной отправки I ' m перенаправление на то же отображение с помощью запроса GET.

 @RequestMapping(value="/signin.html",method = RequestMethod.GET)
 public ModelAndView submitPRG(){
     ModelAndView mv = new ModelAndView("submitted");
     mv.addObject("message", "Submitted Correctly");
     return mv;
 }

Таким образом я решаю проблему двойной отправки.

У меня несколько вопросов:

1) Как я могу узнать, что запрос GET на /signin.html поступает из перенаправления и не был запрошен пользователем в браузере? Я просто хочу закрыть опцию, чтобы пользователь мог просмотреть http: //server/signin.html и получить сообщение «Отправлено правильно». Я знаю, что могу добавить что-то вроде /signin.html?submitted=true, но я хотел бы сделать его более чистым.

2) есть ли способ передать объект ModelAndView из submit () в submitPRG () ?

Или просто есть ли другой способ использовать PRG в этом случае?

13
задан BalusC 19 April 2016 в 11:58
поделиться