framework-web:spring:controllers

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
framework-web:spring:controllers [2019/01/22 03:17] – [Response] jcheronframework-web:spring:controllers [2023/09/26 23:51] (Version actuelle) – [Redirections] jcheron
Ligne 81: Ligne 81:
  }  }
 </sxh> </sxh>
 +
 +=== Passage de variables à la vue ===
 +
 +Il est possible d'injecter une instance de la classe **ModelMap** ou **Model** :
 +
 +<sxh java>
 + @getMapping
 + public String messageAction(ModelMap model) {
 + model.put("message","Ceci est un message");
 + return "main/index";
 + }
 +</sxh>
 +
 +Il est également possible de charger une vue et de lui passer des variables depuis une instance de **ModelAndView** :
 +
 +<sxh java>
 + @RequestMapping
 + public ModelAndView index() {
 + ModelAndView mv=new ModelAndView("main/index");
 + mv.addObject("Title","Titre de la page");
 + return mv;
 + }
 +</sxh>
 +
 +voir [[https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-return-types|Return values]]
 +
 +==== Redirections ====
 +
 +Une action d'un contrôleur peut éventuellement rediriger vers une autre action, après avoir effectué ses propres traitements, avec éventuel passage de paramètres de type flash :
 +
 +<sxh java>
 + @RequestMapping
 + public RedirectView submitAction(@RequestParam String value, RedirectAttributes attrs) {
 + //Traitements
 + attrs.addFlashAttribute("message","Formulaire envoyé...");
 + return new RedirectView("/");
 + }
 +</sxh>
 +
 +La vue associée à la route **/** pourra accéder à la variable **message** et l'afficher.
 +
  
 ====== Ressources ====== ====== Ressources ======
   * [[http://www.baeldung.com/spring-requestmapping|RequestMapping annotation]]   * [[http://www.baeldung.com/spring-requestmapping|RequestMapping annotation]]
  • framework-web/spring/controllers.1548123457.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)