Sitemesh学习[0]

博客介绍了使用sitemesh建立复合视图,包括hello示例、装饰器及其他讨论。sitemesh是opensymphony团队开发的j2ee应用框架,可提高页面可维护性和复用性。opensymphony的webwork也是知名框架,二者均开源。还列举了应用该框架的大项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用sitemesh建立复合视图 - 1.hello

(作者:chen-neu ,提供给 huihoo.com 发布)

使用sitemesh建立复合视图 - 1.hello  <- now

使用sitemesh建立复合视图 - 2.装饰器  

使用sitemesh建立复合视图 - 3.其它讨论 

sitemesh是opensymphony团队开发的j2ee应用框架之一,旨在提高页面的可维护性和复用性。opensymphony的另一个广为人知的框架为webwork是用作web层的表示框架。他们都是开源的,可以在www.sf.net下找到。

应用于以下大项目的例子:http://opensource.thoughtworks.com/projects/sitemesh.html

简介:
sitemesh应用Decorator模式,用filter截取request和response,把页面组件head,content,banner结合为一个完整的视图。通常我们都是用include标签在每个jsp页面中来不断的包含各种header, stylesheet, scripts and footer,现在,在sitemesh的帮助下,我们可以开心的删掉他们了。如下图,你想轻松的达到复合视图模式,那末看完本文吧。

 

hello sitemesh:
  1. 在WEB-INF/web.xml中copy以下filter的定义:
    <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>
    
    <taglib>
      <taglib-uri>sitemesh-decorator</taglib-uri>
      <taglib-location>/WEB-INF/sitemesh-decorator.tld</taglib-location>
    </taglib>
    
    <taglib>
      <taglib-uri>sitemesh-page</taglib-uri>
      <taglib-location>/WEB-INF/sitemesh-page.tld</taglib-location>
    </taglib>
    

  2. copy所需jar和dtd文件至相应目录,访问opensymphony.sourceforge.net的cvs以获取sitemesh最新版本。
    sitemesh.jarWEB-INF/lib
    sitemesh-decorator.tldWEB-INF
    sitemesh-page.tldWEB-INF

  3. 建立WEB-INF/decorators.xml描述各装饰器页面(可仿照sitemesh例子)。
    <decorators defaultdir="/_decorators">
        <decorator name="main" page="main.jsp">
            <pattern>*</pattern>
        </decorator>
    </decorators>



  4. 建立装饰器页面 /_decorators/main.jsp
    <%@ page contentType="text/html; charset=GBK"%>
    <%@ taglib uri="sitemesh-decorator" prefix="decorator" %>
    
    <html>
      <head>
        <title><decorator:title default="装饰器页面..." /></title>
        <decorator:head />
      </head>
      <body>
        sitemesh的例子<hr>
        <decorator:body />
        <hr>chen56@msn.com
      </body>
    </html>
    


  5. 建立一个的被装饰页面 /index.jsp(内容页面)
    <%@ page contentType="text/html; charset=GBK"%>
    <html>
      <head>
        <title>Agent Test</title>
      </head>
      <body>
        <p>本页只有一句,就是本句.</p>
      </body>
    </html>

最后访问index.jsp,将生成如下页面:

而且,所有的页面也会如同index.jsp一样,被sitemesh的filter使用装饰模式修改成如上图般模样,却不用再使用include标签。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值