http://docs.huihoo.com/java/sitemesh/

(作者: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

  • www.jboss.org
  • www.theserverside.com
  • www.opensymphony.com
  • www.atlassian.com
简介:
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.jar WEB-INF/lib
    sitemesh-decorator.tld WEB-INF
    sitemesh-page.tld WEB-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标签。

使用sitemesh建立复合视图 - 1.hello相关推荐

  1. 详解Java中的复合视图设计模式

    使用由多个子视图组成的复合视图.整个模板的每个子视图可以整体动态地包括在内,并且可以独立于内容来管理页面的布局. Apache Tiles和SiteMesh 框架使用Composite View De ...

  2. Project2016创建复合视图

    文章目录 (1) Project中任务视图的使用方法和结果 (2)Project中资源视图的使用方法和结果 (3)在Project中创建复合视图的方法和结果 (4)Project中创建报表的方法.步骤 ...

  3. tableau三轴合并_玩转Tableau | 实现并排柱形图和线图的复合视图

    原标题:玩转Tableau | 实现并排柱形图和线图的复合视图 经常使用Excel的小伙伴可能会知道,Excel中有一种图形展现形式是并排柱形图和线图的复合视图,如下图所示: 经常会有人问,像上面的这 ...

  4. oracle创建物化视图的权限,建立物化视图的权限

    首先,重新构造测试环境: SQL> CONN YANGTK/YANGTK@TEST4 已连接. SQL> DROP USER TEST CASCADE; 用户已丢弃 SQL> DRO ...

  5. 使用Visio建立数据库模型视图(数据库模型图、数据视图)

    转自:https://blog.csdn.net/qq_36456952/article/details/64438891 1.在visio中新建数据库模型图    打开visio 2010,文件-& ...

  6. 如何在sqlserver数据库表中建立复合主键

    主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的. 建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立 ...

  7. GdiPlus[28]: IGPPen: 建立复合画笔

    设置画笔的 CompoundArray 属性可得到复合画笔. 它对应的类型是 IGPCompoundArray (IGPCompoundArray = IGPArray<Single>). ...

  8. mysql建立复合索引的一些原则

    1.复合索引的主列字段,一般是选择性较好的字段: 2. 复合索引的几个字段应该经常以AND形式出现在where子句中: 3. 复合索引中的字段经常单独出现在where子句,则应该放弃使用复合索引,应该 ...

  9. Spring MVC学习笔记——SiteMesh的使用(转)

    转自 SiteMesh的使用 SiteMesh的介绍就不多说了,主要是用来统一页面风格,减少重复编码的. 它定义了一个过滤器,然后把页面都加上统一的头部和底部. 需要先在WEB-INF/lib下引入s ...

最新文章

  1. Java Date 和 Calendar
  2. 实现strcmp库函数的功能
  3. SAP Spartacus读取User Address的请求发送和接收源头
  4. 微软推出Visual Studio Kubernetes工具包预览版
  5. FreeModbus移植到STM32F103(串行传输方式)
  6. oracle 5表关联查询,Oracle学习笔记5 - 表查询
  7. ui设计师就业前景怎么样?
  8. java编程需要数学知识吗_编程需要很好的数学吗?
  9. 图像处理基础(五)_图像像素中通道概念解析
  10. java中arraylist扩容问题_Arraylist扩容机制
  11. cocos2d-x自制工具07:打印cocos2d-x的节点树
  12. RBAC权限系统设计
  13. jieba中文分词组件的词性类型
  14. VFX - Niagara中的Emitter Summary
  15. 将Gif图转换成Unity Texture2D
  16. 公司网页服务器访问超时,网站页面请求后台超时的相关咨询
  17. 数据分析实战----北京租房数据统计分析
  18. MySQL忘记密码如何重置
  19. 与黑客讨价还价,勒索攻击企业数据是关键
  20. x264中码率控制(二)x264_ratecontrol_start函数

热门文章

  1. [Android] The connection to adb is down, and a severe error has occured
  2. 中国大学MOOC 计算机组成原理第1章测试
  3. 1025:保留12位小数的浮点数
  4. 大数据WEB阶段 TransientDateAccessResourceException
  5. 【IT资讯】财联社:华为有望获Armv9架构CPU授权
  6. 【Qt】QModbusTcpClient类
  7. 【Linux】一步一步学Linux——nslookup命令(161)
  8. python的requests.session()_Python+requests之session保持会话
  9. vue 中provide的用法_聊聊Vue中provide/inject的应用详解
  10. 每天一道LeetCode-----寻找两个链表的交点