Apache Tiles Integration med Spring MVC

1. Oversigt

Apache Tiles er en gratis open source-skabeloneramme, der udelukkende er bygget på det sammensatte designmønster.

Et sammensat designmønster er en type strukturmønster, der komponerer objekter i træstrukturer for at repræsentere hel-del hierarkier, og dette mønster behandler individuelle objekter og sammensætning af objekter ensartet. Med andre ord, i Tiles bygges en side ved at samle en sammensætning af undervisninger kaldet Tiles.

Fordelene ved denne ramme i forhold til andre rammer inkluderer:

  • genanvendelighed
  • nem konfiguration
  • lav ydeevne overhead

I denne artikel vil vi fokusere på integrering af Apache Tiles med Spring MVC.

2. Afhængighedskonfiguration

Det første trin her er at tilføje den nødvendige afhængighed i pom.xml:

 org.apache.tiles fliser-jsp 3.0.8 

3. Fliser layoutfiler

Nu skal vi definere skabelondefinitionerne, og specifikt overskriver vi skabelondefinitionerne for den specifikke side pr. Side:

4. ApplicationConfiguration og andre klasser

Som en del af konfigurationen opretter vi tre specifikke java-klasser kaldet ApplicationInitializer, ApplicationController og ApplicationConfiguration:

  • ApplicationInitializer initialiserer og kontrollerer den nødvendige konfiguration, der er specificeret i ApplicationConfiguration klasser
  • ApplicationConfiguration klasse indeholder konfigurationen til integration af Spring MVC med Apache Tiles framework
  • ApplicationController klasse fungerer synkroniseret med tile.xml fil og omdirigerer til de nødvendige sider baseret på de indgående anmodninger

Lad os se hver af klasserne i aktion:

@Controller @RequestMapping ("/") public class TilesController {@RequestMapping (value = {"/"}, method = RequestMethod.GET) public String homePage (ModelMap model) {returner "hjem"; } @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", ny DispatcherServlet (ctx)); servlet.setLoadOnStartup (1); servlet.addMapping ("/"); }}

Der er to vigtige klasser, der spiller en nøglerolle i konfigurationen af ​​fliser i en Spring MVC-applikation. De er TilesConfigurer og TilesViewResolver:

  • TilesConfigurer hjælper med at linke Tiles-rammen med Spring-rammen ved at give stien til fliser-konfigurationsfilen
  • TilesViewResolver er en af ​​adapterklassen, der leveres af Spring API til at løse flisevisningen

Endelig i ApplicationConfiguration klasse, brugte vi TilesConfigurer og TilesViewResolver klasser for at opnå integrationen:

@Configuration @EnableWebMvc @ComponentScan (basePackages = "com.baeldung.spring.controller.tiles") public class TilesApplicationConfiguration implementerer WebMvcConfigurer {@Bean public TilesConfigurer tileConfigurer () {TilesConfigurer tileConfigurer = new TilsConfigurer = new tileConfigurer.setDefinitions (ny streng [] {"/WEB-INF/views/**/tiles.xml"}); tileConfigurer.setCheckRefresh (sand); returner fliserConfigurer; } @ Override offentlig ugyldighed configureViewResolvers (ViewResolverRegistry registry) {TilesViewResolver viewResolver = ny TilesViewResolver (); registry.viewResolver (viewResolver); } @ Override public void addResourceHandlers (ResourceHandlerRegistry registry) {registry.addResourceHandler ("/ static / **") .addResourceLocations ("/ static /"); }}

5. Fliser skabelonfiler

Indtil nu var vi færdige med konfigurationen af ​​Apache Tiles framework og definitionen af ​​skabelonen og specifikke fliser, der blev brugt i hele applikationen.

I dette trin skal vi oprette de specifikke skabelonfiler, der er defineret i tile.xml.

Find uddraget af layouts, der kan bruges som base til at oprette specifikke sider:

6. Konklusion

Dette afslutter integrationen af ​​Spring MVC med Apache Tiles.

Du kan finde den fulde implementering i det følgende github-projekt.