Sitemesh 3使用及配置

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:效果:

时间: 2024-08-04 22:33:18

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

springMvc sitemesh freemarker 整合总结

前言 由于个人喜欢springmvc对restful支持的完美,再加上配置简单和与spring的天然集成,故项目打算用springMvc; freemarker 尽管网上有众多评测,言之性能不挤,但对于我们项目的的环境而言是足够的,再加上其丰富的内建函数与指令,亦十分的方便; 至于sitemesh,简单的配置,对于中小型项目亦足够; 配置 先说web.xml,配置如下: <context-param> <param-name>contextConfigLocation</pa

【sitemesh】Jsp的装饰器组件sitemesh

姑且不论这东西到底有没有用,毕竟Jsp页面编程完全可以利用JSP的include命令,像传统网页编程一样,先写好几个页眉页脚header.html.footer.html.banner.html之类,再于每个页面利用<jsp:include page="xxx.html" />引入这几个页面.这样一来好维护,二来代码清晰不麻烦,三来去到asp.net.vbscript.php等服务器编程页面我们一样这样搞.要不是html没有include命令,甚至来不至于用到服务器后端语言

sitemesh3.0的配置以及在静态html中的使用

sitemesh3配置.md 引言 白天的时候一直想使用sitemesh来整合spring mvc+velocity+mybatis架构,但是在度娘搜了很久都没搜到想要的资料,同时sitemesh官网又被伟大的GFW给屏蔽了(反正VPN之前我是经常访问不了),因此搞了好几个小时都没搞明白究竟如何在velocity中使用sitemesh来装饰我的页面.于是乎,晚上借着vpn的由头总算在google上很快搜到了想要的资料.Wiki中的资料很全,不过是英文版的,因此本文中的叙述会将原文档的一部分做一些

SiteMesh2-示例工程

了解SiteMesh的最佳方法是使用它.假设SiteMesh设置在您的Web应用程序中,本教程将展示如何掌握SiteMesh最强大的方面,如下所示装饰页面: 效果发生在第2步,其中Menu.jsp页面呈现为html.在html页面发送到客户端浏览器之前,该页面由单个文件basic-theme.jsp进行装饰. 在此示例中,添加了一个Menu.jsp,添加了一个Footer.jsp,而没有任何额外的代码被添加到Menu.jsp. 示例操作步骤: 0.整体项目结构: 1.POM引入依赖: <!--

sitemesh2.x+velocity+springmvc乱码解决方案

sitemesh2.x+velocity乱码解决方案.md 引言 通常我们在采用springmvc+velocity架构的时候只需要跳转到action然后在转回html页面,此时即可通过velocity的固有语法在html中取出各种变量.当当我们想在以上的架构中加入sitemesh2.x 的时候会发现配置装饰页面时采用action会出现一些错误,而只能直接使用.vm来配置装饰器页面,可是这样直接跳转的做法很多时候会出现一些乱码问题. 正文 有人会说,可以在velocity的配置文件中加入字符集设

Struts2版本更新报错:&gt;&gt;&gt; ActionContextCleanUp &lt;&lt;&lt; is deprecated! Please use the new filters!

因低版本Struts2存在漏洞,更新为较新的版本.启动时,报如下警告信息: *************************************************************************** * WARNING!!! * * * * >>> ActionContextCleanUp <<< is deprecated! Please use the new filters! * * * * This can be a source o

k8s项目实战教程

以一个部署在k8s上的小项目做例子,介绍k8s项目部署的过程 需要有k8s的基础,搭建k8s集群可用使用二进制文件,官方推荐使用容器部署的方式,这里使用的kubeadm快捷部署 使用kubeadm 1.13搭建集群(各个版本的搭建可能存在一些小的差异) 5台 centos7,最低版本主机名分别是server1,server2,server3,server4,server51:系统更新: yum update -y2:修改系统主机名 vim /etc/hostname3:修改selinux:vim

SiteMesh, SpringMVC, Shiro 配置

1. 首先在在web.xml文件中,加入SiteMesh和shiro的过滤器,保证SiteMesh的过滤器配置放在shiro的过滤器后面,不然的话,shiro的标签不能正确处理. <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.

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

摘要:首先这个Decorator解释一下这个单词:“装饰器”,我觉得其实可以这样理解,他就像我们用到的Frame,他把每个页面共有的东西提炼了出来,也可能我们也会用各种各样的include标签,将我们的常用页面给包括进来:比如说页面的top,bottom这些每个页面几乎都有,而且都一样,如果我们在每个页面都include,可以发现我们的程序有很多冗余,重复.相比之下装饰器给我们提供了一个较好的选择,他在你要显示的页面根本看不出任何include信息,可以说完全解耦. 一.SiteMesh介绍 S