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:11] – [Request] jcheronframework-web:spring:controllers [2023/09/26 23:51] (Version actuelle) – [Redirections] jcheron
Ligne 59: Ligne 59:
  
 ===== Response ===== ===== Response =====
 +
 +==== Affichage direct ====
 +
 +Sans passage par une vue, la chaîne retournée constitue le response body.
 +
 +<sxh java>
 + @RequestMapping
 + public @ResponseBody String index() {
 + return "Hello World!";
 + }
 +</sxh>
 +
 +==== Appel d'une vue ====
 +
 +Par défaut, le String retourné correspond à un nom de vue (dans ce cas main/index.html à partir du dossier des templates défini dans application.properties):
 +
 +<sxh java>
 + @RequestMapping
 + public String index() {
 + return "main/index";
 + }
 +</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.1548123116.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)