sitemesh的简单回顾

来源[url]http://blog.csdn.net/bluishglc/article/details/5969905[/url]

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,目前尚不清楚用途。下面是官方提供的一份配制样本.



[xhtml] view plaincopy
01.<sitemesh>
02. <property name="decorators-file" value="/WEB-INF/decorators.xml" />
03. <excludes file="${decorators-file}" />
04. <page-parsers>
05. <parser content-type="text/html"
06. class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
07. <parser content-type="text/html;charset=ISO-8859-1"
08. class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
09. </page-parsers>
10. <decorator-mappers>
11. <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
12. <param name="config" value="${decorators-file}" />
13. </mapper>
14. </decorator-mappers>
15.</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并不起作用。



[xhtml] view plaincopy
01.<decorators defaultdir="/decorators">
02. <excludes>
03. <pattern>/40*.jsp</pattern>
04. <pattern>/*ajax=true*</pattern>
05. <pattern>/scripts/dojo/*</pattern>
06. <pattern>/struts/dojo/*</pattern>
07. <pattern>/resources/*</pattern>
08. <pattern>/admin/login.jsp</pattern>
09. <pattern>/site/login.jsp</pattern>
10. </excludes>
11. <decorator name="adminDecorator" page="/admin/decorator.jsp">
12. <pattern>/admin/*</pattern>
13. </decorator>
14. <decorator name="siteDecorator" page="/site/decorator.jsp">
15. <pattern>/site/*</pattern>
16. </decorator>
17.</decorators>



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



[xhtml] view plaincopy
01.<%@ include file="/admin/taglibs.jsp"%>
02.<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>
03.<%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page"%>
04.<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
05.<html>
06. <head>
07. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
08. <title><decorator:title/></title>
09. <link rel="stylesheet" type="text/css" href="<c:url value='/admin/styles/layout.css'/>" />
10. </head>
11. <body>
12. <div id="container">
13. <div id="header">
14. <jsp:include page="header.jsp" />
15. </div>
16. <div id="menu">
17. <jsp:include page="menu.jsp" />
18. </div>
19. <div id="mainContent">
20. <div id="sidebar">
21. <jsp:include page="sidebar.jsp" />
22. </div>
23. <div id="content">
24. <decorator:body/>
25. </div>
26. </div>
27. <div id="footer">
28. <jsp:include page="footer.jsp" />
29. </div>
30. </div>
31. </body>
32.</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值