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:
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.