Integrácia dlaždíc Apache s jarnými MVC
1. Prehľad
Apache Tiles je bezplatný šablónový rámec otvoreného zdroja založený čisto na kompozitnom dizajnovom vzore.
Kompozitný návrhový vzor je typ štrukturálneho vzoru, ktorý skladá objekty do stromových štruktúr, aby reprezentovali hierarchie jednotlivých častí, a tento vzor zaobchádza s jednotlivými objektmi a so zložením objektov jednotne. Inými slovami, v Dlaždiciach je stránka zostavená zostavením kompozície čiastkových zobrazení s názvom Dlaždice.
Výhody tohto rámca oproti iným rámcom zahŕňajú:
- opätovná použiteľnosť
- ľahká konfigurácia
- nízky výkon réžie
V tomto článku sa zameriame na integrácia dlaždíc Apache s Spring MVC.
2. Konfigurácia závislostí
Prvým krokom je pridanie potrebnej závislosti do súboru pom.xml:
org.apache.tiles dlaždice-jsp 3.0.8
3. Súbory rozloženia dlaždíc
Teraz musíme definovať definície šablón a konkrétne na každej stránke prepíšeme definície šablón pre túto konkrétnu stránku:
4. ApplicationConfiguration a ďalšie triedy
V rámci konfigurácie vytvoríme tri špecifické triedy Java s názvom ApplicationInitializer, ApplicationController a ApplicationConfiguration:
- ApplicationInitializer inicializuje a kontroluje potrebnú konfiguráciu uvedenú v ApplicationConfiguration triedy
- ApplicationConfiguration trieda obsahuje konfiguráciu pre integráciu Spring MVC s rámcom Apache Tiles
- ApplicationController trieda pracuje synchronizovane s dlaždice.xml súbor a presmerovanie na potrebné stránky založené na prichádzajúcich požiadavkách
Pozrime sa na každú z tried v akcii:
@Controller @RequestMapping ("/") verejná trieda 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"; }}
public class WebInitializer implementuje WebApplicationInitializer {public void onStartup (ServletContext container) hodí ServletException {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext (); ctx.register (TilesApplicationConfiguration.class); container.addListener (nový ContextLoaderListener (ctx)); ServletRegistration.Dynamic servlet = container.addServlet ("dispečer", nový DispatcherServlet (ctx)); servlet.setLoadOnStartup (1); servlet.addMapping ("/"); }}
Existujú dve dôležité triedy, ktoré hrajú kľúčovú úlohu pri konfigurácii dlaždíc v jarnej aplikácii MVC. Oni sú TilesConfigurer a TilesViewResolver:
- TilesConfigurer pomáha pri prepojení rámca Tiles s rámcom Spring tým, že poskytuje cestu k konfiguračnému súboru dlaždíc
- TilesViewResolver je jednou z tried adaptérov poskytovaných Spring API na vyriešenie pohľadu na dlaždice
Nakoniec v ApplicationConfiguration triedy sme použili TilesConfigurer a TilesViewResolver triedy na dosiahnutie integrácie:
@Configuration @EnableWebMvc @ComponentScan (basePackages = "com.baeldung.spring.controller.tiles") verejná trieda TilesApplicationConfiguration implementuje WebMvcConfigurer {@Bean public TilesConfigurer dlaždiceConfigurer () {TilesConfigurer dlaždiceConfigurer = nový TilesConfigurer (nový) dlaždiceConfigurer.setDefinitions (nový reťazec [] {"/WEB-INF/views/**/tiles.xml"}); dlaždiceConfigurer.setCheckRefresh (true); vrátiť dlaždiceConfigurer; } @Override public void configureViewResolvers (register ViewResolverRegistry) {TilesViewResolver viewResolver = nový TilesViewResolver (); registry.viewResolver (viewResolver); } @Override public void addResourceHandlers (register ResourceHandlerRegistry) {registry.addResourceHandler ("/ static / **") .addResourceLocations ("/ static /"); }}
5. Súbory šablón dlaždíc
Doteraz sme dokončili konfiguráciu rámca Apache Tiles a definíciu šablóny a konkrétnych dlaždíc použitých v celej aplikácii.
V tomto kroku musíme vytvoriť konkrétne súbory šablón, ktoré boli definované v dlaždice.xml.
Nájdete úryvok rozložení, ktorý je možné použiť ako základ na vytvorenie konkrétnych stránok:
6. Záver
Týmto sa končí integrácia Spring MVC s dlaždicami Apache.
Kompletnú implementáciu nájdete v nasledujúcom projekte github.