Apache csempék integrációja a tavaszi MVC-vel

1. Áttekintés

Az Apache Tiles egy ingyenes, nyílt forráskódú sablonkeret, amely kizárólag a kompozit tervezési mintára épül.

Az összetett tervezési minta egy olyan strukturális minta, amely az objektumokat fa struktúrákba állítja össze, hogy az egész rész hierarchiáját ábrázolja, és ez a minta az egyes objektumokat és az objektumok összetételét egységesen kezeli. Más szavakkal, a Csempékben egy oldal úgy épül fel, hogy a Csempék nevű alnézetek összetételét összeállítja.

Ennek a keretnek az előnyei a többi keretrendszerrel szemben:

  • újrahasználhatóság
  • könnyű konfiguráció
  • alacsony teljesítményű rezsi

Ebben a cikkben a következőkre fogunk összpontosítani az Apache csempék integrálása a Spring MVC-vel.

2. Függőség konfigurálása

Az első lépés az, hogy hozzáadjuk a szükséges függőséget a pom.xml:

 org.apache.tiles-jsp 3.0.8 

3. Csempék elrendezési fájlok

Most meg kell határoznunk a sablondefiníciókat, és minden oldalanként felülírjuk az adott oldal sablondefinícióit:

4. ApplicationConfiguration és egyéb osztályok

A konfiguráció részeként három specifikus java osztályt hozunk létre ApplicationInitializer, ApplicationController és ApplicationConfiguration:

  • ApplicationInitializer inicializálja és ellenőrzi a ApplicationConfiguration osztályok
  • ApplicationConfiguration osztály tartalmazza a Spring MVC és az Apache Tiles keretrendszer integrálásának konfigurációját
  • ApplicationController osztály szinkronban működik csempe.xml fájlt, és a beérkező kérések alapján átirányítja a szükséges oldalakra

Lássuk az egyes osztályokat működés közben:

@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"; }}
public class WebInitializer megvalósítja a WebApplicationInitializer {public void onStartup (ServletContext tároló) dobja a ServletException {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext (); ctx.register (TilesApplicationConfiguration.class); container.addListener (új ContextLoaderListener (ctx)); ServletRegistration.Dynamic servlet = container.addServlet ("diszpécser", új DispatcherServlet (ctx)); servlet.setLoadOnStartup (1); servlet.addMapping ("/"); }}

Két fontos osztály létezik, amelyek kulcsszerepet játszanak a lapok konfigurálásában egy Spring MVC alkalmazásban. Ők TilesConfigurer és TilesViewResolver:

  • TilesConfigurer segít a csempe keretrendszer és a tavaszi keretrendszer összekapcsolásában azáltal, hogy megadja a csempék konfigurációs fájljának elérési útját
  • TilesViewResolver egy olyan adapterosztály, amelyet a Spring API biztosít a csempe nézet megoldásához

Végül a ApplicationConfiguration osztály, használtuk TilesConfigurer és TilesViewResolver osztályok az integráció elérése érdekében:

@Configuration @EnableWebMvc @ComponentScan (basePackages = "com.baeldung.spring.controller.tiles") public class TilesApplicationConfiguration implementál WebMvcConfigurer {@Bean public TilesConfigurer tilesConfigurer () {TilesConfigurer () TilesConfigurer tilesConfigurer.setDefinitions (új karakterlánc [] {"/WEB-INF/views/**/tiles.xml"}); tilesConfigurer.setCheckRefresh (true); return csempékConfigurer; } @Orride public void configureViewResolvers (ViewResolverRegistry registry) {TilesViewResolver viewResolver = new TilesViewResolver (); register.viewResolver (viewResolver); } @Orride public void addResourceHandlers (ResourceHandlerRegistry registry) {register.addResourceHandler ("/ static / **") .addResourceLocations ("/ static /"); }}

5. Csempék sablonfájlok

Mostanáig befejeztük az Apache Tiles keretrendszer konfigurálását, valamint az egész alkalmazásban használt sablon és konkrét csempék meghatározását.

Ebben a lépésben létre kell hoznunk azokat a sablonfájlokat, amelyeket a csempe.xml.

Kérjük, keresse meg az elrendezések részletét, amelyek alapul szolgálhatnak bizonyos oldalak készítéséhez:

6. Következtetés

Ezzel lezárul a Spring MVC és az Apache Tiles integrációja.

A teljes megvalósítást a következő github projektben találja meg.