Apache Tiles Integration med Spring MVC
1. Oversikt
Apache Tiles er et gratis rammeverk med åpen kildekode-mal som bare er bygget på det sammensatte designmønsteret.
Et sammensatt designmønster er en type strukturmønster som komponerer gjenstander i trestrukturer for å representere hele del hierarkier, og dette mønsteret behandler individuelle objekter og sammensetning av objekter jevnt. Med andre ord, i Tiles, er en side bygget ved å samle en sammensetning av undervisninger kalt Tiles.
Fordelene med dette rammeverket i forhold til andre rammer inkluderer:
- gjenbrukbarhet
- enkel konfigurasjon
- lav ytelse overhead
I denne artikkelen vil vi fokusere på integrering av Apache Tiles med Spring MVC.
2. Avhengighetskonfigurasjon
Det første trinnet her er å legge til den nødvendige avhengigheten i pom.xml:
org.apache.tiles fliser-jsp 3.0.8
3. Fliser layoutfiler
Nå må vi definere maldefinisjonene og spesifikt i henhold til hver side vil vi overskrive maldefinisjonene for den spesifikke siden:
4. ApplicationConfiguration og andre klasser
Som en del av konfigurasjonen vil vi lage tre spesifikke Java-klasser kalt ApplicationInitializer, ApplicationController og ApplicationConfiguration:
- ApplicationInitializer initialiserer og sjekker den nødvendige konfigurasjonen spesifisert i ApplicationConfiguration klasser
- ApplicationConfiguration klasse inneholder konfigurasjonen for å integrere Spring MVC med Apache Tiles framework
- ApplicationController klassen fungerer i synkronisering med tile.xml fil og viderekobler til de nødvendige sidene basert på innkommende forespørsler
La oss se hver av klassene i aksjon:
@Controller @RequestMapping ("/") public class TilesController {@RequestMapping (value = {"/"}, method = RequestMethod.GET) public String homePage (ModelMap model) {return "home"; } @RequestMapping (value = {"/ apachetiles"}, method = RequestMethod.GET) public String productsPage (ModelMap model) {return "apachetiles"; } @RequestMapping (value = {"/ springmvc"}, method = RequestMethod.GET) public String contactUsPage (ModelMap model) {return "springmvc"; }}
offentlig klasse WebInitializer implementerer WebApplicationInitializer {public void onStartup (ServletContext container) kaster ServletException {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext (); ctx.register (TilesApplicationConfiguration.class); container.addListener (ny ContextLoaderListener (ctx)); ServletRegistration.Dynamic servlet = container.addServlet ("dispatcher", new DispatcherServlet (ctx)); servlet.setLoadOnStartup (1); servlet.addMapping ("/"); }}
Det er to viktige klasser som spiller en nøkkelrolle i å konfigurere fliser i en Spring MVC-applikasjon. De er TilesConfigurer og TilesViewResolver:
- TilesConfigurer hjelper med å koble Tiles-rammeverket med Spring-rammeverket ved å gi stien til flisekonfigurasjonsfilen
- TilesViewResolver er en av adapterklassen som tilbys av Spring API for å løse flisvisningen
Til slutt, i ApplicationConfiguration klasse, brukte vi TilesConfigurer og TilesViewResolver klasser for å oppnå integrasjonen:
@Configuration @EnableWebMvc @ComponentScan (basePackages = "com.baeldung.spring.controller.tiles") public class TilesApplicationConfiguration implementerer WebMvcConfigurer {@Bean public TilesConfigurer tileConfigurer () {TilesConfigurer tileConfigurer = new TilesConfigurer = new TilcConfigurer tileConfigurer.setDefinitions (ny streng [] {"/WEB-INF/views/**/tiles.xml"}); tileConfigurer.setCheckRefresh (true); return tileConfigurer; } @Override public void configureViewResolvers (ViewResolverRegistry registry) {TilesViewResolver viewResolver = new TilesViewResolver (); registry.viewResolver (viewResolver); } @ Override public void addResourceHandlers (ResourceHandlerRegistry registry) {registry.addResourceHandler ("/ static / **") .addResourceLocations ("/ static /"); }}
5. Fliser malfiler
Til nå var vi ferdig med konfigurasjonen av Apache Tiles framework og definisjonen av malen og spesifikke fliser som ble brukt i hele applikasjonen.
I dette trinnet må vi lage de spesifikke malfilene som er definert i tile.xml.
Vennligst finn utdraget av layoutene som kan brukes som en base for å bygge spesifikke sider:
6. Konklusjon
Dette avslutter integrasjonen av Spring MVC med Apache Tiles.
Du finner full implementering i det følgende github-prosjektet.