Model, ModelMap og ModelAndView i Spring MVC

1. Oversigt

I denne artikel vil vi se på brugen af ​​kernen org.springframework.ui.Model, org.springframework.ui.ModelMap og org.springframework.web.servlet.ModelAndView leveret af Spring MVC.

2. Maven-afhængigheder

Lad os starte med forårskontekst afhængighed i vores pom.xml fil:

 org.springframework spring-context 5.2.2.RELEASE 

Den seneste version af forårskontekstafhængighed kan findes her.

Til ModelAndView, det fjeder-web afhængighed er påkrævet:

 org.springframework spring-web 5.2.2.RELEASE 

De nyeste versioner af forårets internetafhængighed kan findes her.

Og hvis vi bruger Thymeleaf som vores opfattelse, skal vi tilføje denne afhængighed til pom.xml:

 org.thymeleaf thymeleaf-spring5 3.0.11.RELEASE 

Den seneste version af Thymeleaf-afhængighed kan findes her.

3. Model

Lad os starte med det mest basale koncept her - Model.

Kort sagt, modellen kan levere attributter, der bruges til gengivelse af visninger.

For at give en visning med brugbare data tilføjer vi blot disse data til dens Model objekt. Derudover kan kort med attributter flettes med Model tilfælde:

@GetMapping ("/ showViewPage") offentlig String passParametersWithModel (Model model) {Map map = new HashMap (); map.put ("fjeder", "mvc"); model.addAttribute ("besked", "Baeldung"); model.mergeAttributter (kort); returner "viewPage"; }

4. ModelMap

Ligesom Model interface ovenfor, ModelMap bruges også til at overføre værdier for at gengive en visning.

Fordelen ved ModelMap er det giver os muligheden for at videregive en samling af værdier og behandle disse værdier som om de var inden for en Kort:

@GetMapping ("/ printViewPage") public String passParametersWithModelMap (ModelMap map) {map.addAttribute ("welcomeMessage", "welcome"); map.addAttribute ("besked", "Baeldung"); returner "viewPage"; }

5. ModelAndView

Den sidste grænseflade til at overføre værdier til en visning er ModelAndView.

Denne grænseflade giver os mulighed for at videregive alle de oplysninger, der kræves af Spring MVC på én gang:

@GetMapping ("/ goToViewPage") offentlig ModelAndView passParametersWithModelAndView () {ModelAndView modelAndView = ny ModelAndView ("viewPage"); modelAndView.addObject ("besked", "Baeldung"); returner modelAndView; } 

6. Udsigten

Alle data, vi placerer inden for disse modeller, bruges af en visning - generelt en skabelonvisning til gengivelse af websiden.

Hvis vi har en Thymeleaf-skabelonfil målrettet af vores controllerens metoder som deres opfattelse. En parameter, der sendes gennem modellen, vil være tilgængelig inden for den tidlige HTML-kode:

   Titel webapplikation. Bestået parameter: th: text = "$ {message}" 

Parameteren, der sendes her, bruges gennem syntaksen $ {besked}, der er kendt som pladsholder. Thymeleaf-skabelonmotoren erstatter denne pladsholder med en faktisk værdi fra en attribut med samme navn, der er sendt gennem modellen.

7. Konklusion

I denne hurtige tutorial har vi diskuteret tre kernekoncepter i Spring MVC - the Model, det ModelMap og ModelAndView. Vi kiggede også på eksempler på, hvordan udsigten kan gøre brug af disse værdier.

Som altid kan implementeringen af ​​alle disse eksempler og kodestykker findes på Github.