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.