Model, ModelMap i ModelAndView u proljetnom MVC-u

1. Pregled

U ovom ćemo članku pogledati upotrebu jezgre org.springframework.ui.Model, org.springframework.ui.ModelMap i org.springframework.web.servlet.ModelAndView koje pruža Spring MVC.

2. Ovisnosti Mavena

Počnimo s proljeće-kontekst ovisnost u našem pom.xml datoteka:

 org.springframework proljeće-kontekst 5.2.2.OSLOBOĐENJE 

Najnoviju verziju ovisnosti o proljetnom kontekstu možete pronaći ovdje.

Za ModelAndView, proljeće-mreža ovisnost je potrebna:

 org.springframework spring-web 5.2.2.OSLOBOĐENJE 

Najnovije verzije ovisnosti o proljetnim mrežama možete pronaći ovdje.

I, ako koristimo Thymeleaf kao svoj pogled, trebali bismo dodati ovu ovisnost na pom.xml:

 org.Timeleaf timileaf-proljeće5 3.0.11.OBLAŽENJE 

Najnoviju verziju ovisnosti o majčinoj dušici možete pronaći ovdje.

3. Model

Krenimo s najosnovnijim konceptom ovdje - Model.

Jednostavno rečeno, model može pružiti atribute koji se koriste za prikazivanje prikaza.

Da bismo pružili prikaz korisnih podataka, jednostavno ih dodajemo u svoje podatke Model objekt. Uz to se mogu spojiti karte s atributima Model primjerci:

@GetMapping ("/ showViewPage") javni niz passParametersWithModel (model modela) {Map map = new HashMap (); map.put ("proljeće", "mvc"); model.addAttribute ("poruka", "Baeldung"); model.mergeAttributes (karta); povratak "viewPage"; }

4. ModelMap

Baš kao i Model sučelje iznad, ModelMap također se koristi za prosljeđivanje vrijednosti za prikaz prikaza.

Prednost ModelMap je li nam daje sposobnost da prenesemo zbirku vrijednosti i tretiramo te vrijednosti kao da su unutar Karta:

@GetMapping ("/ printViewPage") javni niz passParametersWithModelMap (karta MapMap) {map.addAttribute ("welcomeMessage", "welcome"); map.addAttribute ("poruka", "Baeldung"); povratak "viewPage"; }

5. ModelAndView

Konačno sučelje za prosljeđivanje vrijednosti pogledu je ModelAndView.

Ovo sučelje omogućuje nam da proslijedimo sve podatke potrebne Spring MVC-u u jednom povratku:

@GetMapping ("/ goToViewPage") javni ModelAndView passParametersWithModelAndView () {ModelAndView modelAndView = novi ModelAndView ("viewPage"); modelAndView.addObject ("poruka", "Baeldung"); vrati modelAndView; } 

6. Pogled

Sve podatke koje smjestimo u ove modele koristi prikaz - općenito, predloženi prikaz za prikazivanje web stranice.

Ako imamo datoteku predloška Thymeleaf ciljanu metodama našeg kontrolera kao njihov pogled. Parametar propušten kroz model bit će dostupan unutar HTML koda majčine dušice:

   Naslov web aplikacija. Proslijeđeni parametar: th: text = "$ {message}" 

Ovdje prosljeđeni parametar koristi se kroz sintaksu $ {message}, koja je poznata kao rezervirano mjesto. Strojni mehanizam Thymeleaf zamijenit će ovo rezervirano mjesto stvarnom vrijednošću iz istoimenog atributa koji je prošao kroz model.

7. Zaključak

U ovom smo brzom vodiču razgovarali o tri temeljna koncepta u Spring MVC-u - Model, ModelMap i ModelAndView. Također smo pogledali primjere kako pogled može iskoristiti ove vrijednosti.

Kao i uvijek, implementacija svih ovih primjera i isječaka koda može se naći na Githubu.