目标:
对未登录的JSP页面login.jsp和register.jsp 在底部添加版权信息
对已经登录的JSP页面welcome.jsp 添加菜单栏和底部版权信息
1 安装Sitemesh框架
Sitemesh的安装包含两部分文件的添加
sitemesh-2.3.jar是Sitemesh的支持包 复制此文件到\webRoot\WEB-INF\lib目录下
sitemesh-decorator.tld和sitemesh-page.tld是Sitemesh的标签库文件 复制这两个文件到\webRoot\WEB-INF目录下
这样就拥有了Sitemesh的支持环境
2 配置Sitemesh框架
需要在web.xml文件中配置Sitemesh 包含两个部分
[1]配置Sitemesh过滤器
在web.xml中添加一个过滤器 使用的类为Sitemesh的页面过滤器类com.opensymphony.module.sitemesh.filter.PageFilter 使用“/*”的匹配符 表示对所有的页面进行过滤 配置的过滤器如下所示
- <filter>
- <filter-name>sitemesh</filter-name>
- <filter-class>
- com.opensymphony.module.sitemesh.filter.PageFilter
- </filter-class>
- </filter>
- <filter-mapping>
- <filter-name>sitemesh</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
[2]配置Sitemesh标签库
在web.xml中添加两个SiteMesh的标签库
- <taglib>
- <taglib-uri>sitemesh-page</taglib-uri>
- <taglib-location>
- /WEB-INF/sitemesh-page.tld
- </taglib-location>
- </taglib>
- <taglib>
- <taglib-uri>sitemesh-decorator</taglib-uri>
- <taglib-location>
- /WEB-INF/sitemesh-decorator.tld
- </taglib-location>
- </taglib>
3 建立装饰器描述文件decorator.xml
WEB-INF/decorator.xml文件用来将一个装饰器名字同一个专门的JSP装饰文件绑定 需要设置一下属性
defaultdir:指定装饰器JSP文件存放的目录
name:装饰器的名称
page:JSP装饰文件
pattern:表示要装饰的是页面匹配符 “/*”表示要装饰的是所有的页面
这里将JSP装饰文件frame.jsp同一个称为frame等我装饰器绑定起来
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <decorators defaultdir="/decorators">
- <decorator name="frame" page="frame.jsp">
- <pattern>/*</pattern>
- </decorator>
- </decorators>
4 建立装饰器页面/decorators/frame.jsp
- <%@ page import="com.demo.spring.util.Constants"%>
- <%@ taglib uri=""
- prefix="decorator"%>
- <html>
- <head>
- <title>Demo - <decorator:title default="Welcome!" /></title>
- <decorator:head />
- </head>
- <body>
- <div align="center"><%if (session.getAttribute(Constants.USERNAME_KEY) != null) {%>
- <table width="100%">
- <tr>
- <td><img src="images/logo4.png"></td>
- <td><img src="images/logo2.png" height="90"></td>
- </tr>
- <tr>
- <td colspan="2">
- <hr>
- </td>
- </tr>
- <tr>
- <td>
- <table>
- <tr>
- <td><a href="welcome.jsp">Main</a></td>
- </tr>
- <tr>
- <td><a href="menu1.do">Menu1</a></td>
- </tr>
- <tr>
- <td><a href="menu2.do">Menu2</a></td>
- </tr>
- <tr>
- <td><a href="menu3.do">Menu3</a></td>
- </tr>
- <tr>
- <td><a href="menu4.do">Menu4</a></td>
- </tr>
- <tr>
- <td><a href="menu5.do">Menu5</a></td>
- </tr>
- <tr>
- <td><a href="menu6.do">Menu6</a></td>
- </tr>
- <tr>
- <td><a href="menu7.do">Menu7</a></td>
- </tr>
- <tr>
- <td><a href="menu8.do">Menu8</a></td>
- </tr>
- </table>
- </td>
- <td><decorator:body /></td>
- </tr>
- </table>
- <%} else {%> <decorator:body /> <%}%>
- <hr>
- 2007copyright abc@163.com</div>
- </body>
- </html>
阅读(5132) | 评论(0) | 转发(0) |