免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1230 | 回复: 0
打印 上一主题 下一主题

SiteMesh的使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-06 10:12 |只看该作者 |倒序浏览
     SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。提供了一种在网站中更有效的组织页面布局的方式。
     SiteMesh设计思想是,用户发送request至服务器,服务器根据此request生成动态数据,生成网页,准备返回给客户端。就在返回前,SiteMesh进行拦截,对此网页进行解析,将title、body等部分拆解出来,套上模板后,再返回给客户端。由于SiteMesh在返回客户端的最后一步工作,此时的网页已经具备了标准的html网页格式,因此SiteMesh只需解析标准的html网页,无需考虑各个Web应用是应用了JSP、ASP,还是Velocity技术,相当灵活。
     SiteMesh使用了Decorator的设计模式。

本文为大家展示一个简单的SiteMesh例子。
     首先创建一个web工程.名字就叫做SitemeshSample.将sitemesh-2.3.jar, commons-collections.jar放到lib目录下。
在web.xml中加入如下片段:
   
       sitemesh
      
           com.opensymphony.module.sitemesh.filter.PageFilter
        
   
   
       sitemesh
       /*
   
    这里定义了一个过滤器.所有的请求都交由sitemesh来处理

     在WEB-INF下创建一个decorators.xml文件,内容如下:
   
   
        
           /*
        
   
    这是定义了模板页,也就是所有页面在返回给客户端之前,先在这里加上装饰,套上模板。
defaultdir="/decorators"说明了模板页的路径。模板页的名称。    /*表示对所有的response进行处理

    在web下面建一个文件夹取名decorators.在decoratots下面创建上面定义的模板页面main.jsp,内容如下:
   
      
      
   
       Add head decorator...
      
       Add foot decorator...
   
说明:
此处为decorator标签的声明。因为我们下面要使用到它
把请求的原始页面的title内容插入到,比如我们要请求index.jsp页面的时候。会把index.jsp中的title的内容放入到这里
把请求的原始页面的body内容插入到,发现没有我们在这句的前面加上了Add head decorator...和Add foot decorator...
相当于给我们请求的页面的body内容加上了头部和尾部.实现了模板功能。

在WEB-INF下创建我们要请求访问的页面index.jsp,内容如下:
   
       SiteMesh Sample Site
   

   
       Welcome to the SiteMesh sample...
   
把web工程部署到tomcat容器中。
输入
http://localhost:8080/SitemeshSample/index.jsp

页面效果如下:
Add head decorator...
Welcome to the SiteMesh sample...
Add foot decorator...
不难发现,我们index.jsp中只有Welcome to the SiteMesh sample... 一句。但是在返回给我们之前套上了main.jsp模板页。在它的前面和后面分别加上了一句话。通过Sitemesh我们可以很容易实现页面中动态内容和静态装饰外观的分离。


文件:
Sitemesh.rar
大小:
282KB
下载:
下载










本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/67919/showart_677228.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP