Интеграция на Apache Tiles с Spring MVC

1. Общ преглед

Apache Tiles е безплатна рамка за шаблони с отворен код, изцяло изградена върху модела на композитен дизайн.

Композитният шаблон на дизайна е вид структурен модел, който съставя обекти в дървесни структури, за да представя йерархии от цели части и този модел третира еднообразно отделни обекти и състав на обекти. С други думи, в Tiles страница се изгражда чрез сглобяване на композиция от подвидове, наречени Tiles.

Предимствата на тази рамка пред други рамки включват:

  • повторна използваемост
  • лекота в конфигурацията
  • ниски режийни разходи

В тази статия ще се съсредоточим върху интегрирането на Apache Tiles с Spring MVC .

2. Конфигуриране на зависимост

Първата стъпка тук е да добавите необходимата зависимост в pom.xml :

 org.apache.tiles tiles-jsp 3.0.8 

3. Файлове за оформление на плочки

Сега трябва да дефинираме дефинициите на шаблона и по-специално на всяка страница ще заменим дефинициите на шаблона за тази конкретна страница:

4. ApplicationConfiguration и други класове

Като част от конфигурацията ще създадем три специфични Java класа, наречени ApplicationInitializer , ApplicationController и ApplicationConfiguration :

  • ApplicationInitializer инициализира и проверява необходимата конфигурация, посочена в класовете ApplicationConfiguration
  • Класът ApplicationConfiguration съдържа конфигурацията за интегриране на Spring MVC с рамката на Apache Tiles
  • Класът ApplicationController работи в синхрон с файл плочки.xml и пренасочва към необходимите страници въз основа на входящите заявки

Нека видим всеки от класовете в действие:

@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 implements WebApplicationInitializer { public void onStartup(ServletContext container) throws ServletException { AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); ctx.register(TilesApplicationConfiguration.class); container.addListener(new ContextLoaderListener(ctx)); ServletRegistration.Dynamic servlet = container.addServlet( "dispatcher", new DispatcherServlet(ctx)); servlet.setLoadOnStartup(1); servlet.addMapping("/"); } }

Има два важни класа, които играят ключова роля при конфигурирането на плочки в приложението Spring MVC. Те са TilesConfigurer и TilesViewResolver :

  • TilesConfigurer помага при свързването на Tiles framework с Spring структурата, като предоставя пътя към конфигурационния файл за плочки
  • TilesViewResolver е един от класа на адаптера, предоставен от Spring API за разрешаване на изгледа на плочки

И накрая, в класа ApplicationConfiguration използвахме класовете TilesConfigurer и TilesViewResolver , за да постигнем интеграцията:

@Configuration @EnableWebMvc @ComponentScan(basePackages = "com.baeldung.spring.controller.tiles") public class TilesApplicationConfiguration implements WebMvcConfigurer { @Bean public TilesConfigurer tilesConfigurer() { TilesConfigurer tilesConfigurer = new TilesConfigurer(); tilesConfigurer.setDefinitions( new String[] { "/WEB-INF/views/**/tiles.xml" }); tilesConfigurer.setCheckRefresh(true); return tilesConfigurer; } @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. Файлове с шаблони за плочки

Досега бяхме завършили конфигурацията на Apache Tiles framework и дефиницията на шаблона и конкретни плочки, използвани в цялото приложение.

В тази стъпка трябва да създадем конкретните файлове с шаблони, дефинирани в плочките.xml .

Моля, намерете фрагмента от оформленията, който може да се използва като основа за изграждане на конкретни страници:


    

6. Заключение

Това завършва интеграцията на Spring MVC с Apache Tiles.

Можете да намерите пълната реализация в следния github проект.