Рубрики
Без рубрики

Интеграция плиток Apache с Spring MVC

Краткое введение в использование плиток с Spring MVC.

Автор оригинала: baeldung.

1. Обзор

Apache Tiles – это бесплатная платформа шаблонов с открытым исходным кодом, построенная исключительно на шаблоне композитного дизайна.

Составной шаблон проектирования-это тип структурного шаблона, который объединяет объекты в древовидные структуры для представления иерархий целых частей, и этот шаблон одинаково обрабатывает отдельные объекты и состав объектов. Другими словами, в заголовках страница строится путем сборки композиции подвидов, называемых плитками.

Преимущества этого фреймворка перед другими фреймворками включают в себя:

  • повторное использование
  • простота настройки
  • низкие эксплуатационные расходы

В этой статье мы сосредоточимся на интеграции плиток Apache с Spring MVC .

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

Первым шагом здесь является добавление необходимой зависимости в pom.xml :


    org.apache.tiles
    tiles-jsp
    3.0.8

3. Файлы макета плиток

Теперь нам нужно определить определения шаблонов и конкретно в соответствии с каждой страницей мы перепишем определения шаблонов для этой конкретной страницы:


      
          
          
          
          
          
      
      
          
          
      

4. Конфигурация приложения и другие классы

В рамках конфигурации мы создадим три конкретных класса java, называемых ApplicationInitializer , ApplicationController и ApplicationConfiguration :

  • Инициализатор приложения инициализирует и проверяет необходимую конфигурацию, указанную в классах ApplicationConfiguration
  • Конфигурация приложения класс содержит конфигурацию для интеграции Spring MVC с платформой плиток Apache
  • ApplicationController класс работает синхронно с tiles.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 помогает связать фреймворк плиток с фреймворком Spring, предоставляя путь к файлу конфигурации плиток
  • tilesViewResolver является одним из классов адаптеров, предоставляемых Spring API для разрешения представления плиток

Наконец, в классе Конфигурация приложения мы использовали классы 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 и определение шаблона и конкретных плиток, используемых во всем приложении.

На этом шаге нам нужно создать конкретные файлы шаблонов, которые были определены в tiles.xml .

Пожалуйста, найдите фрагмент макетов, который можно использовать в качестве основы для создания конкретных страниц:


    
        
        <tiles:getasstring name="title"></tiles:getasstring>
        
        
    
    
        

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

На этом завершается интеграция Spring MVC с плитками Apache.

Вы можете найти полную реализацию в следующем проекте github .