Dans les servlets, le transfert et la redirection s'effectuent par demande et réponse. Veuillez consulter mon article précédent pour connaître la différence entre les deux. Alors, comment ça se passe dans springMVC ?
/**Avant**/
@RequestMapping("/login.do")
Public String login (demande HttpServletRequest, réponse HttpServletResponse){
request.setAttribute("message", "hello");
return "forward:/index.do"; //forward peut obtenir la valeur du message après le saut
}
index.do est un autre chemin, qui est la valeur dans RequestMapping.
@RequestMapping("/index.do")
index de chaîne public (requête HttpServletRequest, réponse HttpServletResponse){
retour "bienvenue";
}
/**Réorienter**/
@RequestMapping("/logout.do")
public String déconnexion (demande HttpServletRequest, réponse HttpServletResponse){
request.setAttribute("message", "hello");
return "redirect:/register.do"; //la redirection ne peut pas obtenir la valeur du message après le saut
>
register.do est un autre chemin, qui est la valeur dans RequestMapping.
@RequestMapping("/register.do")
registre de chaîne public (requête HttpServletRequest, réponse HttpServletResponse){
retour "register";
>
De plus, l'URL de la barre d'adresse ne changera pas après le saut vers l'avant mais changera avec la redirection
Lorsque nous utilisons la redirection, tous les paramètres passés à la page en arrière-plan sont perdus sauf s'ils sont placés dans la séance. Il existe donc une solution dans springMVC comme suit :
@RequestMapping("/update.do")
public String update( RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute( " message", "Opération réussie");
return "redirect:/admin/user";
}
Dans la page redirigée, vous pouvez obtenir la valeur du message , c'est parce que le printemps met le message dans la session.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!