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.