简化网站开发:SiteMesh插件
来源:互联网 发布:mac数据恢复 编辑:程序博客网 时间:2024/05/17 05:06
在编写一个网站时,几乎所有的页面都会有相同的部分。比如顶部的导航栏,每个页面都是一样的,底部的版权声明,每个页面也都是一样的。
那么在编写顶部导航栏的时候,第一种方法就是直接复制导航栏的全部代码,这种方法初期开发很简单但是后期维护简直就是噩梦,要是导航栏要增加一个按钮,所有的页面都要修改,非常麻烦。
第二种方法是将顶部导航栏专门写到一个文件中,所有的页面include这个文件。这样每个页面都要写一个include语句。后期修改只要改一个文件就可以了。但是这种方法写出来的导航栏文件它不是一个完整的网页。并且每个文件都要写上include语句,还是比较麻烦的。
为了让这种页面的编写更加简单,SiteMesh应运而生。
SiteMesh通过装饰器模式解决了这个问题。下面就介绍装饰器的用法。
安装方法
第一步将sitemesh.xxx.jar放在/WEB-INF/lib中。
第二步在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>
需要注意的是,如果你要和struts配合使用,那么filter-mapping要在struts之后,这样才能按照文件名进行装饰,否则是根据action名称进行装饰。另外还要在filter-mapping中加入以下三行,目的是让struts在访问jsp之前对文件进行装饰。如果不加的话是看不到装饰效果的。
<dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher><dispatcher>INCLUDE</dispatcher>
第三步新建装饰器定义文件。文件的位置在/WEB-INF/decorators.xml。内容如下:
<?xml version="1.0" encoding="UTF-8"?><decorators></decorators>
这样SiteMesh插件就装好了。
插件的使用
首先编写一个非常简单的装饰器文件,它的作用是在页面的头尾分别加上header和footer字样。其中\texttt{decorator:body}的作用是将真正的内容引进该文件。
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %><html><head><title></title></head><body>header<decorator:body/>footer</body></html>
第二步在decorators.xml中声明该装饰器。
<?xml version="1.0" encoding="UTF-8"?><decorators defaultdir="/WEB-INF/decorators"> <decorator name="basic-theme" page="basic-theme.jsp"> <pattern>/test.jsp</pattern> </decorator></decorators>
由于修改了web.xml,所以需要重启服务器才能看到效果。你会看到test.jsp的头部和尾部分别加上了header和footer。
- 简化网站开发:SiteMesh插件
- 用SiteMesh简化布局
- 使用SiteMesh简化网页布局
- 使用SiteMesh 简化网页布局
- 使用SiteMesh简化网页布局
- sitemesh插件使用
- struts2之整合sitemesh(使用sitemesh插件)
- 分享13个帮助你简化开发的jQuery插件
- 分享 13 个帮助你简化开发的 jQuery 插件
- 插件10:文本简化
- sitemesh
- SiteMesh
- Sitemesh
- Sitemesh
- SiteMesh
- sitemesh
- sitemesh
- sitemesh
- 黑马程序员,黑马论坛----黑马.Net7期,毕业121个工作日,就业率100%,平均薪水:6383元
- 黑马程序员—[JavaEE就业薪资] JavaEE+云计算7期,就业率97%,平均工资7610元!
- 格式化数字
- 花生壳动态域名不能访问
- HDU 4888 (杭电多校#3)Redraw Beautiful Drawings(网络流之最大流)
- 简化网站开发:SiteMesh插件
- strcpy、memcpy、memmove
- 【线段树】 HDOJ 4973 A simple simulation problem.
- 如何打造一个理想的测试团队
- 数组中出现次数超过一半的数字
- 这个学期的重要性
- 关于几个AndEngine的扩展包
- C-回调函数-详解
- UVa 725 - Division