简介
- sitemesh是一个网页布局与装饰体系,主要应用于创建具有大量一致性用户界面、导航与布局框架的站点。
- sitemesh拦截一切经过web server的静态或动态生成的HTML页面请求,处理页面内容,并将其与一个或多个装饰页面进行融合,生成最终页面。
- sitemesh也可用于构建由多个部分小页面与布局组成的大型页面。
- 可应用于基于java的web应用,也可用于离线内容。
JavaWeb应用sitemesh
1. 导入sitemesh.jar(下载sitemesh.jar)
2. 在web.xml中配置SiteMesh过滤器
<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>
3. 编写装饰页面与基础页面
装饰页面:
<?xml version="1.0" encoding="UTF-8" ?>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><decorator:title /></title>
</head>
<body>
<h1>Header</h1>
<p><b>Navigation</b></p>
<hr />
<decorator:body />
<hr />
<h1>Footer</h1>
</body>
</html>
其中<decorator:title />
与<decorator:body />
表示嵌入业务页面对应的内容(title与body)
业务页面:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Menu</title>
</head>
<body>
<h1>Beverages</h1>
<p>Cappucino $3.25</p>
<p>Latte $3.35</p>
<p>Espresso $2.00</p>
<p>Mocha $3.50</p>
</body>
</html>
4. 配置SiteMesh装饰规则
在WEB-INF/下配置decorators.xml
来声明需要对哪些页面使用哪些页面进行装饰,以及哪些页面不需要进行装饰。
<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/decorators">
<excludes>
<pattern>/data/menu*</pattern>
</excludes>
<decorator name="basic-theme" page="basic-theme.jsp">
<pattern>/data/*</pattern>
</decorator>
</decorators>
上述配置声明:
- 装饰页面的默认路径为
defaultdir="/decorators"
- 排除掉
/data/
下所有文件名以menu
打头的文件,符合此规则的页面不受sitemesh影响 - 装饰页面为
<decorator name="basic-theme" page="basic-theme.jsp">
- 装饰规则:对项目中所有
/data/
下的页面使用basic-theme.jsp
进行装饰。
下载
- sitemesh官网:http://wiki.sitemesh.org/wiki/display/sitemesh/Home
- sitemesh.jar下载:http://download.csdn.net/detail/malingshuma/9559375
- sitemesh官方demo cafe.war下载:http://download.csdn.net/detail/malingshuma/9559376