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

简介:

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



使用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的帮助下,我们可以开心的删掉他们了。如下图,你想轻松的达到复合视图模式,那末看完本文吧。

index_example-diagram.gif

 

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>

copy所需jar和dtd文件至相应目录,访问opensymphony.sourceforge.net的cvs以获取sitemesh最新版本。

sitemesh.jar WEB-INF/lib
sitemesh-decorator.tld WEB-INF
sitemesh-page.tld WEB-INF

建立WEB-INF/decorators.xml描述各装饰器页面(可仿照sitemesh例子)。

<decorators defaultdir="/_decorators">
    <decorator name="main" page="main.jsp">
        <pattern>*</pattern>
    </decorator>
</decorators>



建立装饰器页面 /_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>


建立一个的被装饰页面 /index.jsp(内容页面)

<%@ page contentType="text/html; charset=GBK"%>
<html>
  <head>
    <title>Agent Test</title>
  </head>
  <body>
    <p>本页只有一句,就是本句.</p>
  </body>
</html>

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

index_sitemesh.jpg

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

 

 本文转自wiwi博客51CTO博客,原文链接http://blog.51cto.com/wiwili/1969771如需转载请自行联系原作者


wiwili

相关文章
|
4月前
|
XML 存储 Java
SpringMVC中支持的那些视图解析技术
SpringMVC中支持的那些视图解析技术
61 0
|
Java 关系型数据库 MySQL
Springboot 导入导出Excel ,一对多关系,复合表格、合并单元格数据
Springboot 导入导出Excel ,一对多关系,复合表格、合并单元格数据
1305 0
Springboot 导入导出Excel ,一对多关系,复合表格、合并单元格数据
|
3月前
|
SQL 前端开发 安全
视图的作用
视图的作用。
25 1
|
3月前
|
安全 容器
switfUI 组合视图
switfUI 组合视图
38 1
|
11月前
|
编解码 Android开发
视图 总结 基础
DragViewTaskRelease 使用FrameLayout布局(可以用其他的),内嵌imageView实现悬浮拖动和点击事件,继承View的ontouchEvent进行动作监听和移动 getX(),getY()等方法的区别(图解) BarPercentView 条形进度条(可设置 线性渐变-背景色-进度条颜色-进度条高度) 游戏下载进度条显示 zidingyiView矩形进度框,在构造函数里定义基础属性,初始化布局,定义俩个矩形,onMeasure获取宽高和onDraw方法显示
|
开发者 Python
对CBV视图的探究(1)数据显示视图
对CBV视图的探究(1)数据显示视图
44 0
|
Java
JSP中静态包含与动态包含的关系
JSP中静态包含与动态包含的关系
95 0
|
Java Android开发
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(一)
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(一)
179 0
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(一)
|
Android开发
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(二)
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(二)
160 0
|
Java 数据库连接
Hibernate的复合主键映射(十五)
Hibernate的复合主键映射(十五)
Hibernate的复合主键映射(十五)