Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13697
  • 博文数量: 3
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-30 13:42
文章分类

全部博文(3)

文章存档

2008年(3)

我的朋友
最近访客

分类: Java

2008-05-06 10:12:36

     SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。提供了一种在网站中更有效的组织页面布局的方式。

     SiteMesh设计思想是,用户发送request至服务器,服务器根据此request生成动态数据,生成网页,准备返回给客户端。就在返回前,SiteMesh进行拦截,对此网页进行解析,将titlebody等部分拆解出来,套上模板后,再返回给客户端。由于SiteMesh在返回客户端的最后一步工作,此时的网页已经具备了标准的html网页格式,因此SiteMesh只需解析标准的html网页,无需考虑各个Web应用是应用了JSPASP,还是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,内容如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib uri="" prefix="decorator"%>

   

       <decorator:title /><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"><SPAN style="mso-tab-count: 2">       </SPAN>

   

      

Add head decorator...

      

      

Add foot decorator...

   

说明:

<%@ taglib uri="" prefix="decorator"%>

此处为decorator标签的声明。因为我们下面要使用到它

把请求的原始页面的title内容插入到,比如我们要请求index.jsp页面的时候。会把index.jsp中的title的内容放入到这里

把请求的原始页面的body内容插入到,发现没有我们在这句的前面加上了

Add head decorator...

Add foot decorator...

相当于给我们请求的页面的body内容加上了头部和尾部.实现了模板功能。

 

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

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

   

       SiteMesh Sample Site

   

 

   

       Welcome to the SiteMesh sample...

   

web工程部署到tomcat容器中。

输入

 

页面效果如下:

Add head decorator...

Welcome to the SiteMesh sample...

Add foot decorator...

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

 

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

 

 

 

 

 

 

 

阅读(1782) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:简单的MVC流程

给主人留下些什么吧!~~