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.


$config[zx-auto] not found$config[zx-overlay] not found