Sitemesh 是一个网页布局和修饰的框架,基于 Servlet 中的 Filter
com.opensymphony.sitemesh.webapp.SiteMeshFilter 核心过滤器 SiteMeshFilter implements javax.servlet.Filter
<filter> <filter-name>sitemeshFilter</filter-name> <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class> </filter> <filter-mapping> <filter-name>sitemeshFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
具体的作用是什么呢?
能实现玩野动态展示的内容和静态的修饰分离和对于不同的网页实现不同的修饰。
使用之前需要先从官网 http://wiki.sitemesh.org/wiki/display/sitemesh/Home 下载:decorators.xml 放到web 项目的web-inf 下面。
<?xml version="1.0" encoding="UTF-8"?> <decorators defaultdir="/WEB-INF/views"> <!--装饰器配置文件--> <decorator name="default" page="layouts/default.jsp"> </decorator> <!--可以定义其他的装饰器--> <excludes> <pattern>/modules/sys/sysIndex.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>
defaultdir: 指需要装饰页面的文件夹路径
page:此装饰器的路径:相对的或者是绝对的。
excludes:次装饰器需要装饰的页面或者是路径。如果是绝对的则defaultdir 无效。
pattern:http请求的路径。
装饰器页面的写法:
需要引入sitemesh jsp标签
<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %>
那么接下来就可以自定义自己的内容了,常用的有:
<sitemesh:title/>
<sitemesh:head/>
<sitemesh:body/>等。