1:Sitemesh简介

  SiteMesh是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。

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

  其中涉及到两个名词: 装饰页面(decorator page)和 "被装饰页面(Content page)" , 即 SiteMesh通过对Content Page的装饰,最终得到页面布局和外观一致的页面,并返回给客户。

  Sitemesh百度百科

  

  

2:Sitemesh 3安装:

  在pom.xml文件中添加如下依赖:

<!-- ############## siteMash ##############  -->
<dependency>
<groupId>org.sitemesh</groupId>
<artifactId>sitemesh</artifactId>
<version>3.0.0</version>
</dependency>

  或者下载sitemesh的包手工引用到项目中:

  GitHub 地址:https://github.com/sitemesh/sitemesh3

3:添加Sitemesh 3过滤器:

  在项目的web.xml中添加如下过滤器配置:

<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter> <filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

4:准备“装饰页面”和“被装饰页面”:

  装饰页面是用来修饰其他普通页面的,将如header.html,footer.html放置在装饰页面中,也可以在装饰页面中引入一些页面都需要的JS,CSS或图片等。

  一个简单的装饰页面如下所示:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="renderer" content="webkit" />
<meta name="keywords" content="财多多,互联网金融,P2P,网络投融资平台,网络理财,个人理财,投资理财,P2P理财,100% 本息保障,融资项目,季季丰,月月赢,周周赚,caiduoduo.com"/>
<meta name="description" content="财多多(caiduoduo.com)为互联网理财用户和中小企业提供专业、周到和稳健的互联网金融服务。资金由第三方支付(易宝支付)全额托管;项目100%本息保障,投资灵活"/>
<meta name="author" content="北京财多多投资管理有限公司" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=1024" />
<link rel="shortcut icon" href="http://oss.bomeix.com/H5Template/common/img/favicon.ico">
<title>
<sitemesh:title/>
</title>
<sitemesh:head/>
</head>
<body>
<header>header</header>
<sitemesh:usePage id="thePage" />
<%--一级菜单选择 --%>
<sitemesh:body/>
<footer>footer</footer>
</body>
</html>

  而一个简单的被装饰页面如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="">
<meta name="description" content="">
<title>这是一个测试</title>
</head>
<body>
Hello World! This is a test!
</body>
</html>

5:准备Sitemesh 3配置文件:

  新建decorators.xml文件,放置在/WEB-INF目录下,该页面定义了哪些请求对应了哪个装饰页面,或者哪些请求不进行装饰:

<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/WEB-INF/views/decorators/">
<excludes>
<pattern>/static/*</pattern>
</excludes>
<!-- 默认模板 -->
<decorator name="default" page="decorator.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>

  如上面代码所示,所有请求都使用decorator.jsp这个装饰页面。而且不拦截/static/文件夹下面的请求。

6:效果:

Sitemesh 3使用及配置的更多相关文章

  1. Sitemesh 3 配置和使用(最新)

    Sitemesh 3 配置和使用(最新) 一 Sitemesh简介 Sitemesh是一个页面装饰器,可以快速的创建有统一外观Web应用 -- 导航 加 布局 的统一方案~ Sitemesh可以拦截任 ...

  2. sitemesh 2.4 装饰器学习

    SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的 SiteMesh是OpenSymphony团队开发的JEE框架之一,它是一个非常优秀的页面 ...

  3. SiteMesh3简介及使用

    所属专栏: Java开发经验记录   最近项目用到SiteMesh3,研究学习一段时间后决定写篇博文来记录收获. SiteMesh SiteMesh 介绍 工作原理 配置及使用 下载 1添加maven ...

  4. Struts2版本更新报错:>>> ActionContextCleanUp <<< is deprecated! Please use the new filters!

    因低版本Struts2存在漏洞,更新为较新的版本.启动时,报如下警告信息: ************************************************************** ...

  5. SiteMesh2-示例工程

    了解SiteMesh的最佳方法是使用它.假设SiteMesh设置在您的Web应用程序中,本教程将展示如何掌握SiteMesh最强大的方面,如下所示装饰页面: 效果发生在第2步,其中Menu.jsp页面 ...

  6. SiteMesh, SpringMVC, Shiro 配置

    1. 首先在在web.xml文件中,加入SiteMesh和shiro的过滤器,保证SiteMesh的过滤器配置放在shiro的过滤器后面,不然的话,shiro的标签不能正确处理. <?xml v ...

  7. Sitemesh 3 的使用及配置

    1 . Sitemesh 3 简介 Sitemesh 是一个网页布局和修饰的框架,基于 Servlet 中的 Filter,类似于 ASP.NET 中的‘母版页’技术.参考:百度百科,相关类似技术:A ...

  8. 使用 sitemesh/decorator装饰器装饰jsp页面(原理及详细配置)

    摘要:首先这个Decorator解释一下这个单词:“装饰器”,我觉得其实可以这样理解,他就像我们用到的Frame,他把每个页面共有的东西提炼了出来,也可能我们也会用各种各样的include标签,将我们 ...

  9. SiteMesh在项目中的配置

    SiteMesh在项目中的配置 首先在web.xml里面增加siteMesh的配置: <filter> <filter-name>sitemesh</filter-nam ...

随机推荐

  1. "重力锁屏"Beta版使用说明

    一.产品介绍 重力锁屏是基于android系统的一款锁屏软件.它利用重力感应器来判断用户的动作从而自动锁屏亮屏,是锁屏软件的一大创新.相比传统的锁屏软件,“重力锁屏”从可操作性.方便性.功能全面性都有 ...

  2. web10 动态action的应用

    电影网站:www.aikan66.com 项目网站:www.aikan66.com游戏网站:www.aikan66.com图片网站:www.aikan66.com书籍网站:www.aikan66.co ...

  3. Android界面设计适配不同屏幕的尺寸和密度解读

    Android是运行在各种提供不同的屏幕尺寸和密度的设备.Android系统提供跨设备的统一开发环境和处理大部分的工作,以调整每个应用程序的用户界面,以在其上显示的画面. 同时,该系统提供了API,允 ...

  4. 23_IO_第23天(字节流、字符流)_讲义

    今日内容介绍 1.字节流 2.字符流 01输入和输出 * A:输入和输出 * a: 参照物 * 到底是输入还是输出,都是以Java程序为参照 * b: Output * 把内存中的数据存储到持久化设备 ...

  5. AT89C51的内部4K flash,

    AT89C51的内部4K flash, 是用来下载程序代码的,程序运行时只能做读取数据操作,不能写入.单片机断电时需要候保存数据,可以选择 带EEPROM的单片机 就可以,如STC 系列的单片机有内部 ...

  6. 安装/卸载 修改Config

    参考地址:https://docs.microsoft.com/zh-cn/nuget/create-packages/source-and-config-file-transformations

  7. Sprint2-2.0

    1.开始一个新的冲刺: 起止:2016.6.1~2016.6.14 按照以下过程进行 ProductBacklog:继续向下细化 Sprint 计划会议:确定此次冲刺要完成的目标 Sprint Bac ...

  8. Scrum项目6.0 和8910章读后感

    Scrum项目6.0总结 这次sprint1通过我们的努力,终于把自动回复做出来了.但之后的任务更加繁重,我们要更加努力,克服各种困难. 也要说说这次自动回复里面的注意之处: 1.不该空格的地方空格, ...

  9. Jquery 表单提交后3s禁用

    <form action="${pageContext.servletContext.contextPath}/XXX/###" method="post" ...

  10. unix常用命令记录

    1. ls 命令:列出文件及文件夹 ls -a 列出目录下的所有文件,包括以 . 开头的隐含文件.ls -b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出.ls -c 输 ...