文档章节

sitemesh的简单回顾

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 784
阅读 18
收藏 0
点赞 0
评论 0

sitemesh主要有三个主要文件:sitemesh.xml,decorators.xml和做布局用的jsp页面。
一、sitemesh.xml
对于sitemesh.xml这个文件,官方文档上说它不是必须的。sitemesh总是会有一个份默认的配制。如果你打算提供自己的sitemesh.xml,也最好放在web-inf目录下,目前我还没有找到该文件的位置是否可配制以及在何处配制的说明。从sitemesh.xml文件内容上看它主要负责配制3方面的信息:1.装饰器描述文件decorators.xml的存放位置和名称,默认是/WEB-INF/decorators.xml。2.page-parsers的配制。对这一项的不配制目前还是很清楚,大概是指明解析页面使用的类吧。其中字符集的设定可能需要注意,否则可能会出现乱码问题吧?个人猜测。3.decorator-mappers,目前尚不清楚用途。下面是官方提供的一份配制样本.

<sitemesh>
    <property name="decorators-file" value="/WEB-INF/decorators.xml" />
    <excludes file="${decorators-file}" />
    <page-parsers>
        <parser content-type="text/html"
            class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
        <parser content-type="text/html;charset=ISO-8859-1"
            class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
    </page-parsers>
    <decorator-mappers>
        <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
            <param name="config" value="${decorators-file}" />
        </mapper>
    </decorator-mappers>
</sitemesh>


二、decorators.xml
decorators.xml是配制的核心,它主要用来描述一系列的decorator.每一个decorator需要指明实际用来装饰的JSP页面是哪一个(在这个页面中往往会出现<decorator:head /><decorator:body /><decorator:title /><decorator:getProperty /><decorator:usePage />这些装饰标签),以及这个decorator要装饰的页面有哪些(也就是一系列的url pattern)。下面是oobbs系统的decorators.xml.在它里有两个decorator.分别对应该系统的用户页面和管理页面。需要特别说明的是defaultdir是用来指明装饰文件所在的默认文件夹,如果指定了这个文件夹,那么<decorator/>标签中的page属性中如果填入相对路径,它将会从defaultdir开始查找。在下面的例子中,由于page都给出的是绝对路径,因此defaultdir并不起作用。

<decorators defaultdir="/decorators">
    <excludes>
        <pattern>/40*.jsp</pattern>
        <pattern>/*ajax=true*</pattern>
        <pattern>/scripts/dojo/*</pattern>
        <pattern>/struts/dojo/*</pattern> 
        <pattern>/resources/*</pattern>
		<pattern>/admin/login.jsp</pattern>
		<pattern>/site/login.jsp</pattern>
    </excludes> 
    <decorator name="adminDecorator" page="/admin/decorator.jsp">
        <pattern>/admin/*</pattern>
    </decorator>
    <decorator name="siteDecorator" page="/site/decorator.jsp">
    	<pattern>/site/*</pattern>
    </decorator>
</decorators>


三.做布局用的jsp页面
decorators.xml的配制中都会指向一些这样的页面。这些页面是一些普通的jsp页面,主要是用来布局的。像header,footer这样的框架部分用<jsp:include page="xxx.jsp" />引入,需要被装饰的部分用decorator标签替换就可以了。下面是一个样本。其中<decorator:body/>就代表被装饰页面的body部分,在生成html时,这部分会被sitemesh动态替换掉。

<%@ include file="/admin/taglibs.jsp"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator"	prefix="decorator"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title><decorator:title/></title>
        <link rel="stylesheet" type="text/css" href="<c:url value='/admin/styles/layout.css'/>" />
    </head>
    <body>
        <div id="container">
            <div id="header">
                <jsp:include page="header.jsp" />
            </div>
            <div id="menu">
                <jsp:include page="menu.jsp" />
            </div>
            <div id="mainContent">
                <div id="sidebar">
                    <jsp:include page="sidebar.jsp" />
                </div>
                <div id="content">
                    <decorator:body/>
                </div>
            </div>
            <div id="footer">
                <jsp:include page="footer.jsp" />
            </div>
        </div>
    </body>
</html>

© 著作权归作者所有

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
关于前端使用SiteMesh的一些介绍

Overview 在网站开发的过程中,通常一个网站会有一个整体的风格,页面都有很多共同的菜单,横栏的底部信息。以前我们会采用标签在每个页面中来不断的包含各种, , and ,现在,在的帮助下,我...

facula ⋅ 06/15 ⋅ 0

iartisan/iartisan-admin-template

项目说明 iartisan-admin-template是Java快速开发平台,可以快速构建后台项目 基于shiro已经集成权限功能,集成iartisan-runtime解决了环境依赖问题 集成基于db的代码生成器 iartisan-gener...

iartisan ⋅ 04/25 ⋅ 0

SiteMesh的使用

SiteMesh的介绍就不多说了,主要是用来统一页面风格,减少重复编码的。 它定义了一个过滤器,然后把页面都加上统一的头部和底部。 需要先在WEB-INF/lib下引入sitemesh的jar包:http://wiki.s...

heroShane ⋅ 2014/02/12 ⋅ 3

sitemesh自学整理

这两天自学了一下sitemesh,从网上找了些资源,自己又整理一下,做了个小例子,记下来吧,呵呵;各位牛人大哥,也帮忙看看,要是小弟走弯路了及时把我拉回来 ,O(∩_∩)O~ 简单介绍一下sitem...

Anterior ⋅ 2011/07/13 ⋅ 1

教程:一分钟完成SiteMesh Template模板组合

首先要感谢发明Markdown的家伙,这东西真是好用吖! SiteMesh概述 嗯,请自行Google之。 教程:一分钟完成Template模板组合 1.内容页面 简单的示例内容页面源代码如下: 应该是内容页面 Week...

gsyn77 ⋅ 2013/02/26 ⋅ 0

sitemesh简单使用

一、简介 SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。 官网:http://wiki.sitemesh.org/wiki/display/sitemesh/Home 二、配置...

火龙战士 ⋅ 2016/03/11 ⋅ 0

sitemesh3 简单使用

sitemesh3 是使用filter安装装饰器模式对请求返回的内容进行装饰。 demo.html decorator.html 在web.xml中使用sitemesh的filter 然后在配置sitemesh3.xml,这个是sitemesh3的配置文件在/WEB-...

独钓渔 ⋅ 2016/12/22 ⋅ 0

页面布局Sitemesh3.0和Tiles3.0差异

  【IT168 技术】在页面开发过程中,经常会遇到页面组合情况,即一个页面有几个部分组成,某些部分内容是固定不变的,某些部分是可以进行替换或者页面跳转的,常常要求同一站点的所有Web页...

it168网站 ⋅ 2015/10/09 ⋅ 0

sitemesh学习笔记

SiteMesh是一个用来在JSP中实现页面布局和装饰的组件框架,使用起来也很简单,说一下配置步骤: (1)下载sitemesh的组件包,解压,用到的主要有三个文件:解压后目录里的sitemesh的Jar包和M...

你在哪里 ⋅ 2012/07/25 ⋅ 0

sitemesh的使用

其实sitemesh的使用非常简单,比tiles还要简单一点。 首先在web.xml中配置sitemesh的拦截器 然后在WEB-INF下新增一个decorators.xml的文件 其中main.jsp内容如下,可以根据自己的项目需求修改...

-wangming- ⋅ 2016/04/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 32分钟前 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 38分钟前 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

Spring clound 组件

Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类。 润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。 Ribbon,客户端负载均衡,特性有区域亲和、重试机制。...

英雄有梦没死就别停 ⋅ 昨天 ⋅ 0

Confluence 6 重新获得站点备份文件

Confluence 将会创建备份,同时压缩 XML 文件后存储熬你的 <home-directory>/backups> 目录中。你需要自己访问你安装的 Confluence 服务器,并且从服务器上获得这个文件。 运行从 Confluence...

honeymose ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部