Ho una forma che presenta all'utente nome e cognome utilizzando POST signin.htmlCome passare i dati tra le richieste di Post/Redirect/Get pattern in Spring MVC?
@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;
}
Al fine di risolvere doppia inviare problema che sto reindirizzando alla stessa mappatura mediante richiesta GET.
@RequestMapping(value="/signin.html",method = RequestMethod.GET)
public ModelAndView submitPRG(){
ModelAndView mv = new ModelAndView("submitted");
mv.addObject("message", "Submitted Correctly");
return mv;
}
In questo modo risolvo il problema di invio doppio.
Ho poche domande:
1) Come faccio a sapere che vengono richiesta su /signin.html proveniente dal reindirizzamento e non è stato richiesto da utenti di browser? Vorrei solo chiudere l'opzione per l'utente per cercare http://server/signin.html e per ottenere il messaggio "Inviato correttamente". So che posso aggiungere qualcosa come /signin.html?submitted=true ma vorrei renderlo più pulito.
2) esiste un modo per passare l'oggetto ModelAndView
da submit()
a submitPRG()
?
O semplicemente c'è un altro modo di utilizzare PRG in questo caso?
Grazie in anticipo, ma come posso ottenere referrer da HttpServletRequest? –