Intégration Apache Tiles avec Spring MVC

1. Vue d'ensemble

Apache Tiles est un cadre de création de modèles open source gratuit, entièrement basé 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 structures arborescentes pour représenter des hiérarchies de pièces entières et ce modèle traite les objets individuels et la composition des objets de manière uniforme. En d'autres termes, dans Tiles, une page est construite en assemblant une composition de sous-vues appelées Tiles.

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

  • réutilisabilité
  • facilité de configuration
  • surcharge faible performance

Dans cet article, nous allons nous concentrer sur l' intégration de Apache Tiles avec Spring MVC .

2. Configuration des dépendances

La première étape ici consiste à ajouter la dépendance nécessaire dans le pom.xml :

 org.apache.tiles tiles-jsp 3.0.8 

3. Fichiers de disposition des tuiles

Maintenant, nous devons définir les définitions de modèle et spécifiquement pour chaque page, nous remplacerons les définitions de modèle 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ées ApplicationInitializer , ApplicationController et ApplicationConfiguration :

  • ApplicationInitializer initialise et vérifie la configuration nécessaire spécifiée dans les classes ApplicationConfiguration
  • La classe ApplicationConfiguration contient la configuration pour l'intégration de Spring MVC avec le framework Apache Tiles
  • La classe ApplicationController fonctionne en synchronisation avec le fichier tiles.xml et redirige vers les pages nécessaires en fonction des demandes 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("/"); } }

Il existe deux classes importantes qui jouent un rôle clé dans la configuration des tuiles dans une application Spring MVC. Ce sont TilesConfigurer et TilesViewResolver :

  • TilesConfigurer aide à lier le framework Tiles avec le 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 classe ApplicationConfiguration , nous avons utilisé les classes TilesConfigurer et TilesViewResolver pour réaliser l'intégration:

@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. 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 tuiles spécifiques utilisées dans l'ensemble de l'application.

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

Veuillez trouver l'extrait des mises en page qui peuvent être utilisées comme base pour créer des pages spécifiques:


    

6. Conclusion

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

Vous pouvez trouver l'implémentation complète dans le projet github suivant.