1. Vue d'ensemble
Dans cet article, nous examinerons l'utilisation du noyau org.springframework.ui.Model , org.springframework.ui.ModelMap et org.springframework.web.servlet.ModelAndView fourni par Spring MVC.
2. Dépendances de Maven
Commençons par la dépendance spring-context dans notre fichier pom.xml :
org.springframework spring-context 5.2.2.RELEASE
La dernière version de la dépendance spring-context peut être trouvée ici.
Pour ModelAndView , la dépendance spring-web est requise:
org.springframework spring-web 5.2.2.RELEASE
Les dernières versions de la dépendance spring-web peuvent être trouvées ici.
Et, si nous utilisons Thymeleaf comme vue, nous devrions ajouter cette dépendance à pom.xml:
org.thymeleaf thymeleaf-spring5 3.0.11.RELEASE
La dernière version de la dépendance Thymeleaf peut être trouvée ici.
3. Modèle
Commençons par le concept le plus basique ici - le modèle .
En termes simples, le modèle peut fournir des attributs utilisés pour le rendu des vues.
Pour fournir une vue avec des données utilisables, nous ajoutons simplement ces données à son objet Model . De plus, les cartes avec des attributs peuvent être fusionnées avec des instances de modèle :
@GetMapping("/showViewPage") public String passParametersWithModel(Model model) { Map map = new HashMap(); map.put("spring", "mvc"); model.addAttribute("message", "Baeldung"); model.mergeAttributes(map); return "viewPage"; }
4. ModelMap
Tout comme l' interface Model ci-dessus, ModelMap est également utilisé pour transmettre des valeurs pour rendre une vue.
L'avantage de ModelMap est qu'il nous donne la possibilité de transmettre une collection de valeurs et de traiter ces valeurs comme si elles se trouvaient dans une carte :
@GetMapping("/printViewPage") public String passParametersWithModelMap(ModelMap map) { map.addAttribute("welcomeMessage", "welcome"); map.addAttribute("message", "Baeldung"); return "viewPage"; }
5. ModelAndView
La dernière interface pour transmettre des valeurs à une vue est ModelAndView .
Cette interface nous permet de transmettre toutes les informations requises par Spring MVC en un seul retour:
@GetMapping("/goToViewPage") public ModelAndView passParametersWithModelAndView() { ModelAndView modelAndView = new ModelAndView("viewPage"); modelAndView.addObject("message", "Baeldung"); return modelAndView; }
6. La vue
Toutes les données que nous plaçons dans ces modèles sont utilisées par une vue - en général, une vue basée sur un modèle pour rendre la page Web.
Si nous avons un fichier modèle Thymeleaf ciblé par les méthodes de notre contrôleur comme vue. Un paramètre passé à travers le modèle sera accessible depuis le code HTML thymeleaf:
Title Web Application. Passed parameter : th:text="${message}"
Le paramètre passé ici est utilisé via la syntaxe $ {message} , connue sous le nom d'espace réservé. Le moteur de modèle Thymeleaf remplacera cet espace réservé par une valeur réelle d'un attribut du même nom transmis par le modèle.
7. Conclusion
Dans ce didacticiel rapide, nous avons discuté de trois concepts de base dans Spring MVC: le modèle , le ModelMap et le ModelAndView . Nous avons également examiné des exemples de la manière dont la vue peut utiliser ces valeurs.
Comme toujours, la mise en œuvre de tous ces exemples et extraits de code peut être trouvée sur Github.