Modell, ModelMap és ModelAndView a tavaszi MVC-ben

1. Áttekintés

Ebben a cikkben megvizsgáljuk a mag használatát org.springframework.ui.Modell, org.springframework.ui.ModelMap és org.springframework.web.servlet.ModelAndView a Spring MVC nyújtotta.

2. Maven-függőségek

Kezdjük a tavaszi kontextus függőség a mi pom.xml fájl:

 org.springframework tavaszi kontextus 5.2.2.KÖZLEMÉNY 

A tavaszi kontextusfüggőség legújabb verziója itt található.

A ModelAndView, a tavasz-háló függőség szükséges:

 org.springframework spring-web 5.2.2.FELHASZNÁLÁS 

A tavasz-web függőség legújabb verziói itt találhatók.

És ha a Thymeleaf-et használjuk nézetünknek, akkor ezt a függőséget hozzá kell adnunk a pom.xml fájlhoz:

 org.thymeleaf thymeleaf-spring5 3.0.11. KIBOCSÁTÁS 

A Thymeleaf függőség legújabb verziója itt található.

3. Modell

Kezdjük itt a legalapvetőbb koncepcióval - a Modell.

Egyszerűen fogalmazva, a modell képes megadni a nézetek rendereléséhez használt attribútumokat.

Ahhoz, hogy egy nézetet felhasználható adatokkal biztosítsunk, egyszerűen hozzáadjuk ezeket az adatokat Modell tárgy. Ezenkívül az attribútumokkal rendelkező térképeket össze lehet vonni Modell példányok:

@GetMapping ("/ showViewPage") public String passParametersWithModel (Model model) {Map map = new HashMap (); map.put ("tavasz", "mvc"); model.addAttribute ("üzenet", "Baeldung"); model.mergeAttributes (térkép); return "viewPage"; }

4. ModelMap

Akárcsak a Modell a fenti interfész, ModelMap értékek átadására is szolgál a nézet megjelenítéséhez.

Az előnye ModelMap képes-e átadni egy értékgyűjteményt, és úgy kezelni ezeket az értékeket, mintha a Térkép:

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

5. ModelAndView

Az utolsó felület az értékek átadásához a nézethez a ModelAndView.

Ez a felület lehetővé teszi számunkra, hogy a Spring MVC által kért összes információt egy menetben továbbítsuk:

@GetMapping ("/ goToViewPage") nyilvános ModelAndView passParametersWithModelAndView () {ModelAndView modelAndView = új ModelAndView ("viewPage"); modelAndView.addObject ("üzenet", "Baeldung"); return modelAndView; } 

6. A nézet

Az összes adatot, amelyet ezekben a modellekben elhelyezünk, egy nézet - általában sablonnézet - használ a weboldal megjelenítésére.

Ha van egy Thymeleaf sablonfájl, amelyet vezérlőnk módszerei céloznak meg, nézetként. A modellen átadott paraméter elérhető lesz a timeleaf HTML kódból:

   Cím webalkalmazás. Átadott paraméter: th: text = "$ {message}" 

Az itt átadott paramétert a szintaxison keresztül használják $ {message}, amely helyőrzőként ismert. A Thymeleaf sablonmotor helyettesíti ezt a helyőrzőt egy tényleges értékkel a modellen keresztül átadott azonos nevű attribútumból.

7. Következtetés

Ebben a gyors bemutatóban a Spring MVC három alapvető fogalmát vitattuk meg Modell, a ModelMap és a ModelAndView. Megnéztük azokat a példákat is, amelyek segítségével a nézet felhasználhatja ezeket az értékeket.

Mint mindig, ezeknek a példáknak és kódrészleteknek a megvalósítása megtalálható a Githubon.