Sitemesh Introduction
Sitemesh est un framework basé sur la mise en page, la décoration et l'intégration de pages Web existantes. C'est un décorateur. Cela peut nous aider à créer une mise en page et une apparence cohérentes dans les projets comportant un grand nombre de projets de pages, tels que des barres de navigation cohérentes, des bannières cohérentes, des droits d'auteur cohérents, etc.
SiteMesh est basé sur le filtre Servlet. Il intercepte la réponse et la décore avant de la transmettre au client.
spring boot intègre sitemesh
Le travail d'intégration est très simple :
1 Présentez le package sitemesh.jar
2. , Ajoutez une classe de configuration et une classe de filtre
3. Ajoutez une page de décorateur
2.1 Introduisez le package sitemesh.jar
Introduisez-le dans le fichier pom maven :
<dependency> <groupId>org.sitemesh</groupId> <artifactId>sitemesh</artifactId> <version>3.0.1</version> </dependency>
Classe de configuration et classe de filtre
La classe de configuration est la suivante :import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; //生效配置,使之就像传统项目里sping的xml配置文件一样 @Configuration public class WebConfig extends WebMvcConfigurerAdapter{ //注册成bean,就像传统项目spring配置文件中的<bean>标签 @Bean public FilterRegistrationBean siteMeshFilter(){ FilterRegistrationBean fitler = new FilterRegistrationBean(); //实例化一个过滤器类 WebSiteMeshFilter siteMeshFilter = new WebSiteMeshFilter(); fitler.setFilter(siteMeshFilter); return fitler; } } 过滤器类如下: import org.sitemesh.builder.SiteMeshFilterBuilder; import org.sitemesh.config.ConfigurableSiteMeshFilter; public class WebSiteMeshFilter extends ConfigurableSiteMeshFilter{ @Override protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) { //除了/admin/index和/admin/login页面外,其他所有/admin/下的页面都被/admin/index页面所装饰 builder.addDecoratorPath("/admin/*", "/admin/index") .addExcludedPath("/admin/index") .addExcludedPath("/admin/login"); } }
Page Décorateur
La page décorateur est la page modèle, et les pages définies dans les règles de filtrage seront décorées par cette page.<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"> <head> <title>装饰器页面</title> </head> <body> ... <div id="content"> <sitemesh:write property='body' /> </div> </body> </html>Avec la page décorateur ci-dessus, lorsque l'on visite la page décorée telle que /admin/test, le contenu affiché est la page décorateur + le contenu dans l'élément body de la page décorée, f957f596724c3cec6f619065b1831fff sera remplacé par le contenu de l'élément body de la page décorée. Supposons que la page de test soit la suivante :
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"> <head> <title>test页面</title> </head> <body> <h1>我是test</h1> </body> </html>La page finale est :
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"> <head> <title>装饰器页面</title> </head> <body> ... <div id="content"> <h1>我是test</h1> </div> </body> </html>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!