文档章节

sitemesh的简单回顾

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 784
阅读 18
收藏 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>

本文转载自:http://blog.csdn.net/bluishglc/article/details/5969905

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
SiteMesh Java web页面布局框架

什么是SiteMesh? SiteMesh是一个轻量级灵活的Java web应用框架,它应用了四人帮(Gang of Four)的装饰模式允许内容和表现有一个清晰的分离 SiteMesh is a lightweight and flexible Java ...

天行健J
2012/12/07
0
0
使用SiteMesh简化网页布局

在公司项目使用了 Appfuse ,其带有 SiteMesh 对于网页布局简化让我感觉很好用,本文旨在对对 Sitemesh 的基本原理和在项目中使用 Sitemesh 的实现流程、使用技巧的介绍。 1. 基本原理 Site...

红薯
2008/12/01
3.9K
2
教程:一分钟完成SiteMesh Template模板组合

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

gsyn77
2013/02/26
0
0
用Sitemesh控制页面布局

sitemesh是opensymphony团队开发的j2ee应用框架之一,旨在提高页面的可维护性和复用性。opensymphony的另一个广为人知的框架为webwork是用作web层的表示框架。他们都是开源的,可以在www.sf....

红薯
2008/11/30
1K
3
页面修饰框架SiteMesh的简单使用

SiteMesh 简介; SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。 Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的...

长平狐
2012/09/03
348
0

没有更多内容

加载失败,请刷新页面

加载更多

day178-2018-12-15-英语流利阅读-待学习

“真蛛奶茶”了解一下?蜘蛛也会产奶了 Lala 2018-12-15 1.今日导读 “蛋白质含量是牛奶的 4 倍,并有着更低的脂肪和含糖量”,听起来诱人又美味的并不是羊奶或豆奶,而是你可能打死都想不到...

飞鱼说编程
17分钟前
3
0
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents

场景重现 npm install --verbose 安装依赖的时,出现如下警告 强迫症患者表示不能接受 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):npm WARN......

taadis
21分钟前
1
0
MySQL自增id超大问题查询

引言 小A正在balabala写代码呢,DBA小B突然发来了一条消息,“快看看你的用户特定信息表T,里面的主键,也就是自增id,都到16亿了,这才多久,在这样下去过不了多久主键就要超出范围了,插入...

dragon_tech
34分钟前
3
0
OSChina 周六乱弹 —— 你一口我一口多咬一口是小狗

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文 :分享Roy Orbison的单曲《She's a Mystery to Me》 《She's a Mystery to Me》- Roy Orbison 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
279
6
Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部