Vodič za ViewResolver u proljetnom MVC-u
1. Pregled
Svi MVC okviri pružaju način rada s pogledima.
Spring to čini putem rezolutora pogleda, koji vam omogućuju prikazivanje modela u pregledniku bez vezivanja implementacije za određenu tehnologiju prikaza.
The ViewResolver preslikava nazive pogleda u stvarne poglede.
A Spring Spring dolazi s podosta rješavača pogleda, na pr. InternalResourceViewResolver, XmlViewResolver, ResourceBundleViewResolver i nekoliko drugih.
Ovo je jednostavan vodič koji pokazuje kako postaviti najčešće razrješivače pogleda i kako se koristiti višestrukim ViewResolver u istoj konfiguraciji.
2. Proljetna web konfiguracija
Počnimo s web konfiguracijom; napomenut ćemo s @EnableWebMvc, @Konfiguracija i @ComponentScan:
@EnableWebMvc @Configuration @ComponentScan ("com.baeldung.web") javna klasa WebConfig implementira WebMvcConfigurer {// Sve web konfiguracije ići će ovdje}
Ovdje ćemo postaviti naš razrješivač pogleda u konfiguraciji.
3. Dodajte znak InternalResourceViewResolver
Ovaj ViewResolver omogućuje nam postavljanje svojstava kao što su prefiks ili sufiks na ime pogleda kako bismo generirali konačni URL stranice prikaza:
@Bean public ViewResolver internalResourceViewResolver () {InternalResourceViewResolver bean = new InternalResourceViewResolver (); bean.setViewClass (JstlView.class); bean.setPrefix ("/ WEB-INF / view /"); bean.setSuffix (". jsp"); grah za povratak; }
Za takvu jednostavnost primjera ne treba nam kontroler za obradu zahtjeva.
Trebamo samo jednostavan jsp stranica, smještena u / WEB-INF / prikaz mapa kako je definirana u konfiguraciji:
4. Dodajte a ResourceBundleViewResolver
Kao što naziv ovog rješavača sugerira a ResourceBundleViewResolver koristi definicije graha u a ResourceBundle.
Prvo, dodamo ResourceBundleViewResolver na prethodnu konfiguraciju:
@Bean public ViewResolver resourceBundleViewResolver () {ResourceBundleViewResolver bean = new ResourceBundleViewResolver (); bean.setBasename ("prikazi"); grah za povratak; }
Snop je obično definiran u datoteci svojstava koja se nalazi na putu predavanja. Ispod je pogleda.svojstva datoteka:
sample. (class) = org.springframework.web.servlet.view.JstlView sample.url = / WEB-INF / view / sample.jsp
Možemo se poslužiti jednostavnim jsp stranicu definiranu u gornjem primjeru i za ovu konfiguraciju.
5. Dodajte an XmlViewResolver
Ova provedba ViewResolver prihvaća konfiguracijsku datoteku napisanu u XML s istim DTD kao Proljeće XML tvornice graha:
@Bean public ViewResolver xmlViewResolver () {XmlViewResolver bean = new XmlViewResolver (); bean.setLocation (novi ClassPathResource ("views.xml")); grah za povratak; }
Ispod je konfiguracijska datoteka, views.xml:
Što se tiče prethodnih primjera, možemo se poslužiti našim jednostavnim jsp stranica prethodno definirana.
6. Ulančavanje ViewResolvers i definirajte prioritet narudžbe
Proljetni MVC također podržava višestruki rješavači pogleda.
To vam omogućuje da u nekim okolnostima nadjačate određene poglede. Jednostavno možemo povezati razrešivače prikaza dodavanjem više od jednog razrješivača u konfiguraciju.
Nakon što to učinimo, morat ćemo definirati redoslijed za ove rješavače. The narudžba imovine koristi se za definiranje redoslijeda zazivanja u lancu. Što je svojstvo naloga veće (najveći broj naloga), razrješivač prikaza kasnije se postavlja u lanac.
Da bismo definirali redoslijed možemo dodati sljedeći redak koda u konfiguraciju naših razrješivača prikaza:
bean.setOrder (0);
Budite oprezni s prioritetom narudžbe kao InternalResourceViewResolver treba imati viši poredak - jer je namijenjen predstavljanju vrlo eksplicitnog mapiranja. A ako drugi rješavači imaju viši poredak, tada InternalResourceViewResolver možda se nikad neće pozvati.
7. Zaključak
U ovom smo tutorijalu konfigurirali lanac pregledača pomoću Java konfiguracije. Poigravanjem s prioritetom naloga možemo postaviti redoslijed njihovog pozivanja.
Provedbu ovog jednostavnog vodiča možete pronaći u projektu github.