Model, ModelMap en ModelAndView in Spring MVC

1. Overzicht

In dit artikel kijken we naar het gebruik van de kern org.springframework.ui.Model, org.springframework.ui.ModelMap en org.springframework.web.servlet.ModelAndView geleverd door Spring MVC.

2. Maven afhankelijkheden

Laten we beginnen met de lente-context afhankelijkheid in onze pom.xml het dossier:

 org.springframework spring-context 5.2.2.RELEASE 

De nieuwste versie van afhankelijkheid van de lente-context is hier te vinden.

Voor de ModelAndView, de lente-web afhankelijkheid is vereist:

 org.springframework spring-web 5.2.2.RELEASE 

De nieuwste versies van spring-web-afhankelijkheid zijn hier te vinden.

En als we Thymeleaf als onze weergave gebruiken, moeten we deze afhankelijkheid toevoegen aan pom.xml:

 org.thymeleaf thymeleaf-spring5 3.0.11.RELEASE 

De nieuwste versie van Thymeleaf-afhankelijkheid is hier te vinden.

3. Model

Laten we beginnen met het meest elementaire concept hier - het Model.

Simpel gezegd, het model kan attributen leveren die worden gebruikt voor het weergeven van weergaven.

Om bruikbare gegevens te kunnen zien, voegen we deze gegevens eenvoudig toe aan haar Model voorwerp. Bovendien kunnen kaarten met attributen worden samengevoegd met Model gevallen:

@GetMapping ("/ showViewPage") openbare String passParametersWithModel (Modelmodel) {Map map = new HashMap (); map.put ("spring", "mvc"); model.addAttribute ("bericht", "Baeldung"); model.mergeAttributes (kaart); retourneer "viewPage"; }

4. ModelMap

Net als de Model interface hierboven, ModelMap wordt ook gebruikt om waarden door te geven om een ​​weergave weer te geven.

Het voordeel van ModelMap is het geeft ons de mogelijkheid om een ​​verzameling waarden door te geven en deze waarden te behandelen alsof ze binnen een Kaart:

@GetMapping ("/ printViewPage") openbare String passParametersWithModelMap (ModelMap-kaart) {map.addAttribute ("welcomeMessage", "welcome"); map.addAttribute ("bericht", "Baeldung"); retourneer "viewPage"; }

5. ModelAndView

De laatste interface om waarden door te geven aan een weergave is de ModelAndView.

Met deze interface kunnen we alle informatie die Spring MVC nodig heeft in één keer doorgeven:

@GetMapping ("/ goToViewPage") openbaar ModelAndView passParametersWithModelAndView () {ModelAndView modelAndView = nieuw ModelAndView ("viewPage"); modelAndView.addObject ("bericht", "Baeldung"); retour modelAndView; } 

6. Het uitzicht

Alle gegevens die we binnen deze modellen plaatsen, worden gebruikt door een weergave - in het algemeen een sjabloonweergave om de webpagina weer te geven.

Als we een Thymeleaf-sjabloonbestand hebben dat door de methoden van onze controller als hun weergave is gericht. Een parameter die door het model is doorgegeven, is toegankelijk vanuit de thymeleaf HTML-code:

   Titel webapplicatie. Doorgegeven parameter: th: text = "$ {message}" 

De parameter die hier wordt doorgegeven, wordt gebruikt via de syntaxis $ {bericht}, die bekend staat als een tijdelijke aanduiding. De Thymeleaf-sjabloonengine zal deze tijdelijke aanduiding vervangen door een werkelijke waarde van een attribuut met dezelfde naam dat door het model is doorgegeven.

7. Conclusie

In deze korte tutorial hebben we drie kernconcepten in Spring MVC besproken: het Model, de ModelMap en de ModelAndView. We hebben ook gekeken naar voorbeelden van hoe de view gebruik kan maken van deze waarden.

Zoals altijd is de implementatie van al deze voorbeelden en codefragmenten te vinden op Github.