Intégration des tuiles Apache avec Spring MVC

Intégration des tuiles Apache avec Spring MVC

1. Vue d'ensemble

ApacheTiles est un framework de création de modèles open source gratuit, purement construit sur le modèle de conception composite.

Un modèle de conception composite est un type de modèle structurel qui compose des objets en arborescences pour représenter des hiérarchies entières. Ce modèle traite les objets individuels et leur composition de manière uniforme. En d'autres termes, dans Tiles, une page est construite en assemblant une composition de sous-vues appelée Tiles.

Les avantages de ce cadre par rapport aux autres cadres incluent:

  • réutilisabilité

  • facilité de configuration

  • frais généraux bas

Dans cet article, nous allons nous concentrer sur lesintegrating Apache Tiles with Spring MVC.

2. Configuration des dépendances

La première étape ici consiste à ajouter lesdependency nécessaires dans lespom.xml:


    org.apache.tiles
    tiles-jsp
    3.0.8

3. Fichiers de disposition des tuiles

Nous devons maintenant définir les définitions de modèles et, en particulier pour chaque page, nous allons écraser les définitions de modèles pour cette page spécifique:


    
        
        
        
        
        
    
    
        
        
    

4. ApplicationConfiguration et autres classes

Dans le cadre de la configuration, nous allons créer trois classes Java spécifiques appeléesApplicationInitializer,ApplicationController etApplicationConfiguration:

  • ApplicationInitializer initialise et vérifie la configuration nécessaire spécifiée dans les classesApplicationConfiguration

  • La classeApplicationConfiguration contient la configuration pour intégrer Spring MVC avec le framework Apache Tiles

  • La classeApplicationController fonctionne en synchronisation avec le fichiertiles.xml et redirige vers les pages nécessaires en fonction des requêtes entrantes

Voyons chacune des classes en action:

@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("/");
    }
}

Deux classes importantes jouent un rôle clé dans la configuration des mosaïques dans une application Spring MVC. Ce sontTilesConfigurer etTilesViewResolver:

  • TilesConfigurer aide à relier le framework Tiles au framework Spring en fournissant le chemin d'accès au fichier de configuration de tuiles

  • TilesViewResolver est l'une des classes d'adaptateur fournies par Spring API pour résoudre la vue des tuiles

Enfin, dans la classeApplicationConfiguration, nous avons utilisé les classesTilesConfigurer etTilesViewResolver pour réaliser l'intégration:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.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. Fichiers de modèle de tuiles

Jusqu'à présent, nous avions terminé la configuration du framework Apache Tiles et la définition du modèle et des mosaïques spécifiques utilisées dans l'ensemble de l'application.

Dans cette étape, nous devons créer les fichiers modèles spécifiques qui ont été définis dans lestiles.xml.

Veuillez trouver l'extrait de la mise en page qui peut être utilisé comme base pour construire des pages spécifiques:


    
        
        <tiles:getAsString name="title" />
        
        
    
    
        

6. Conclusion

Ceci conclut l’intégration de Spring MVC avec Apache Tiles.

Vous pouvez trouver l'implémentation complète dans lesfollowing github project.