zoukankan      html  css  js  c++  java
  • spring boot 集成 sitemesh

      一、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

  • 相关阅读:
    HearthBuddy投降插件2019-11-01的使用
    正则表达式在线分析 regex online analyzer
    Tips to write better Conditionals in JavaScript
    The fileSyncDll.ps1 is not digitally signed. You cannot run this script on the current system.
    Cannot capture jmeter traffic in fiddler
    JMETER + POST + anti-forgery token
    input type color
    HearthBuddy修改系统时间
    What are all the possible values for HTTP “Content-Type” header?
    UDK性能优化
  • 原文地址:https://www.cnblogs.com/djw12333/p/11345478.html
Copyright © 2011-2022 走看看