Différences
Ci-dessous, les différences entre deux révisions de la page.
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] jcheron | framework-web:spring:controllers [2023/09/26 23:51] (Version actuelle) – [Redirections] jcheron | ||
---|---|---|---|
Ligne 21: | Ligne 21: | ||
<sxh java> | <sxh java> | ||
- | @RestController | + | @Controller |
@RequestMapping("/ | @RequestMapping("/ | ||
class PersonController { | class PersonController { | ||
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!"; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Appel d'une vue ==== | ||
+ | |||
+ | Par défaut, le String retourné correspond à un nom de vue (dans ce cas main/ | ||
+ | |||
+ | <sxh java> | ||
+ | @RequestMapping | ||
+ | public String index() { | ||
+ | return " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === Passage de variables à la vue === | ||
+ | |||
+ | Il est possible d' | ||
+ | |||
+ | <sxh java> | ||
+ | @getMapping | ||
+ | public String messageAction(ModelMap model) { | ||
+ | model.put(" | ||
+ | return " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 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(" | ||
+ | mv.addObject(" | ||
+ | return mv; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | voir [[https:// | ||
+ | |||
+ | ==== Redirections ==== | ||
+ | |||
+ | Une action d'un contrôleur peut éventuellement rediriger vers une autre action, après avoir effectué ses propres traitements, | ||
+ | |||
+ | <sxh java> | ||
+ | @RequestMapping | ||
+ | public RedirectView submitAction(@RequestParam String value, RedirectAttributes attrs) { | ||
+ | // | ||
+ | attrs.addFlashAttribute(" | ||
+ | return new RedirectView("/" | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | La vue associée à la route **/** pourra accéder à la variable **message** et l' | ||
====== Ressources ====== | ====== Ressources ====== | ||
* [[http:// | * [[http:// |