一、Sitemesh简介

  Sitemesh是由一个基于Web页面布局、装饰及与现存Web应用整合的框架,是一个装饰器。它能帮助我们在由大量页面工程的项目中创建一致的页面布局和外观,如一致的导航条、一致的banner、一致的版权等。

  SiteMesh是基于Servlet的filter的,它通过截取response,并进行装饰后再交付给客户端。

  二、spring boot 集成 sitemesh

  集成要做的工作很简单:

  1、引入sitemesh.jar包

  2、添加一个配置类及过滤器类

  3、新增一个装饰器页面

  2.1、引入sitemesh.jar包

  在maven的pom文件中引入:

  org.sitemesh

  sitemesh

  3.0.1

  2.2、配置类及过滤器类

  配置类如下:

  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

  public FilterRegistrationBean siteMeshFilter(){

  FilterRegistrationBean fitler = new FilterRegistrationBean();

  //实例化一个过滤器类

  WebSiteMeshFilter siteMeshFilter = new WebSiteMeshFilter();

  fitler.setFilter(siteMeshFilter);

  return fitler;

  }

  }

  过滤器类如下:无锡做人流手术多少钱 http://www.120wtrlyy.com/

  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");

  }

  }

  2.3、装饰器页面

  装饰器页面就是模板页面,过滤器规则中定义的页面都会被该页面所装饰。

  ...

  有了上面的装饰器页面,当我们访问被装饰的页面比如/admin/test,展现的内容是装饰器页面+被装饰页面的body元素内的内容,处会被替换为被装饰页面的body元素内的内容。假设,test页面如下:

  我是test

  最终得到的页面是:

  ...

  我是test

spring boot 集成 sitemesh的更多相关文章

  1. Spring Boot集成Jasypt安全框架

    Jasypt安全框架提供了Spring的集成,主要是实现 PlaceholderConfigurerSupport类或者其子类. 在Sring 3.1之后,则推荐使用PropertySourcesPl ...

  2. Spring boot集成swagger2

    一.Swagger2是什么? Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件. Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格 ...

  3. Spring Boot 集成 Swagger,生成接口文档就这么简单!

    之前的文章介绍了<推荐一款接口 API 设计神器!>,今天栈长给大家介绍下如何与优秀的 Spring Boot 框架进行集成,简直不能太简单. 你所需具备的基础 告诉你,Spring Bo ...

  4. spring boot 集成 zookeeper 搭建微服务架构

    PRC原理 RPC 远程过程调用(Remote Procedure Call) 一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远程系统资源,R ...

  5. Spring Boot 集成Swagger

    Spring Boot 集成Swagger - 小单的博客专栏 - CSDN博客https://blog.csdn.net/catoop/article/details/50668896 Spring ...

  6. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  7. Spring boot入门(二):Spring boot集成MySql,Mybatis和PageHelper插件

    上一篇文章,写了如何搭建一个简单的Spring boot项目,本篇是接着上一篇文章写得:Spring boot入门:快速搭建Spring boot项目(一),主要是spring boot集成mybat ...

  8. (转)Spring Boot(十八):使用 Spring Boot 集成 FastDFS

    http://www.ityouknow.com/springboot/2018/01/16/spring-boot-fastdfs.html 上篇文章介绍了如何使用 Spring Boot 上传文件 ...

  9. Spring Boot集成JPA的Column注解命名字段无效的问题

    偶然发现,Spring Boot集成jpa编写实体类的时候,默认使用的命名策略是下划线分隔的字段命名. Spring Boot版本:1.5.4.release 数据表: id int, userNam ...

随机推荐

  1. Sketch2Code - Transform sketches into HTML using AI

    Sketch2Code - Transform sketches into HTML using AI https://sketch2code.azurewebsites.net/generated- ...

  2. t6_sumdoc

    C:\Users\Administrator\Documents\sumdoc 2019\sumdoc t6 final\sumdoc t615C:\Users\Administrator\Docum ...

  3. ocketMQ概念模型

    ocketMQ概念模型 https://blog.csdn.net/binzhaomobile/article/details/73332463 HTTPS://blog.CSDN.net/bin找M ...

  4. Nginx的configure脚本支持选项整理

    在不同版本间,选项可能会有些许变化,请总是使用./configure –help命令来检查当前的选项列表. --prefix=<PATH> #Nginx安装路径.如果没有指定,默认为 /u ...

  5. Java12新特性 -- 其他新增,移除,废弃项

    支持unicode 11 JDK 12版本包括对Unicode 11.0.0的支持.在发布支持Unicode 10.0.0的JDK 11之后,Unicode 11.0.0引 入了以下JDK 12中包含 ...

  6. SDN实验---OVS了解(转载)

    转载自:https://opengers.github.io/openstack/openstack-base-use-openvswitch/ 一:Open vSwitch介绍 (一)介绍 在过去, ...

  7. maven-archetype-plugin 的正确打开方式

    1.  准备好一个编辑好的模板工程 2. 在 pom.xml 中添加 maven-archetype-plugin 插件 <plugin> <groupId>org.apach ...

  8. 在 Hibernate 中inverse的属性

    hibernate配置文件中有这么一个属性inverse,它是用来指定关联的控制方的.inverse属性默认是false,若为false,则关联由自己控制,若为true,则关联由对方控制.见例子: 一 ...

  9. 发布你自己的Nuget包

    ①安装NuGetPackageExplorer 来帮助我们发布你的包. ②https://www.nuget.org/ 创建你的apikey ③新建一个asp.net的空项目,并且安装nuget.se ...

  10. csu 1978: LXX的图论题

    1978: LXX的图论题 Submit Page   Summary   Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 71   ...