使用sitemesh的步骤

1. 添加jar文件到classpath

2. 在web.xml中增加过滤器

  1. <!-- Sitemesh -->
  2. <filter>
  3. <filter-name>sitemesh</filter-name>
  4. <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
  5. </filter>
  6. <filter-mapping>
  7. <filter-name>sitemesh</filter-name>
  8. <url-pattern>/*</url-pattern>
  9. </filter-mapping>

3. 在/WEB-INF中创建decorator.xml文件

  1. <decorators defaultdir="/decorators">
  2. <decorator name="main" page="main.jsp">
  3. <pattern>/*</pattern>
  4. </decorator>
  5. </decorators>

defaultdir:指定了装饰页面的存放路径
    在这里可以使用<decorator>标签配置多个装饰器

4. 另外有一个可选的sitemesh.xml文件,放在/WEB-INF目录下。如果没用,则默认读取sitemesh.jar文件中的sitemesh-default.xml文件。这个文件在jar:com.opensymphony.module.sitemesh.factory包中。

在这个文件中可以指定使用那些mapper对象来装饰页面,也可以扩展自己的Mapper类。 sitemesh自带的mapper类放在com.opensymphony.module.sitemesh.mapper包中,可以供大家选择使用。

5. 这里是今天学习备注的重点 ,com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper 这个类的使用。

在sitemesh-default.xml中,可以看到已经声明了这个类,并且可以通过查阅API来获得其使用方法。

在这个文件中可以看到配置了这个类的两个属性

  1. property.1=meta.decorator
  2. property.2=decorator

通过查阅API可以找到,只要html文件中包含

  1. <meta name="decorator" content="decoratorname">
  2. <meta name="meta.decorator" content="decoratorname">

就可以应用相应的装饰器,而不必在decorator.xml中使用<pattern>来规定哪些页面使用哪些装饰器。

  1. <decorators defaultdir="/decorators">
  2. <decorator name="main" page="main.jsp">
  3. </decorator>
  4. </decorators>

6. 一点联想:

在com.opensymphony.module.sitemesh.mapper包中我看到了一个叫CookieDecoratorMapper的类,话说可以在用户的cookie中指定装饰器的名字。

这样我们可以通过扩展来实现基于用于的个人喜好设定,用户可以自己选择需要应用的装饰器(有点类似QQ空间选择个性主页模板),把装饰器的的名称存放起来,当浏览页面的时候自动去读取这个值以实现主页风格的动态切换。只是有个这个想法,还没有付诸行动,有兴趣的朋友可以试试看。

sitemesh使用步骤的更多相关文章

  1. Sitemesh小记

    一.前言 因参与公司框架改造,接触到了Sitemesh这个用于网页布局和修饰的框架,因之前没有接触过(汗颜),但是发现其小巧好用,便以此文记之~ 二.正文 Sitemesh有什么作用呢?我相信很多人在 ...

  2. sitemesh 2.4 装饰器学习

    SiteMesh 是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的 SiteMesh是OpenSymphony团队开发的JEE框架之一,它是一个非常优秀的页面 ...

  3. eclipse中整合springMvc,velocity和sitemesh

    1.项目所需要jar包 (有些可能多余) 2.创建UserController   目录如下: package qust.thb.usermanage.controller; import org.s ...

  4. sitemesh学习笔记(1)

    最近在学习web开发的时候,发现很多的页面都存在同样的导航栏,登陆栏,js,jQuery等等相同的元素.这样就感觉开发变得好臃肿啊,并且,有时候改一个元素,就要把所有包含这个元素的页面全部重新码一遍, ...

  5. 请求在Struts2框架中的处理步骤

    上图来源于Struts2官方站点,是Struts 2 的整体结构. 一个请求在Struts2框架中的处理大概分为以下几个步骤 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 ...

  6. sitemesh网页布局

    看项目时发现对应页面下找不到侧栏部分代码,仔细观察后发现页面引入了sitemesh标签,查了下资料原来是页面用了sitemesh框架解!耦!了! 以前多个模块包含相同模块时总是include jsp文 ...

  7. SiteMesh入门(1-1)SiteMesh是什么?

    1.问题的提出 在开发Web 应用时,Web页面可能由不同的人参与开发,因此开发出来的界面通常千奇百怪.五花八门,风格难以保持一致. 为了统一界面的风格,Struts 框架提供了一个标签库Tiles ...

  8. sitemesh 使用方法

    一.简介 SiteMesh是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的. 它能通过创建一个包装对象,也就是装饰来包裹的对象.尽管它是由Java语言来实现的 ...

  9. TODO:GitHub创建组织的步骤

    TODO:GitHub创建组织的步骤 使用GitHub进行团队合作,写这个步骤主要作用是为了OneTODO作为一个团队组织进行代码的分享,让更多人来参与. 使用帐号.密码登录GitHub 2.右上角加 ...

随机推荐

  1. 锋利的jQuery之事件

    jQuery中的事件和动画 JavaScript和HTML之间的交互是通过用户和浏览器操作页面时引发的事件来处理的.当文档或者它的某些元素发生某些变化或操作时,浏览器会自动生成一个事件.例如:当浏览器 ...

  2. IOS中怎么使用微软雅黑字体

    http://www.cnblogs.com/GnagWang/archive/2011/09/14/2176266.html

  3. 4、网页制作Dreamweaver(样式表CSS)

    样式表style 制作一个风格统一的网页,需要样式表对颜色.字体等属性的规范,同时也省去在body中多次定义的麻烦,所以一个样式表是必不可少的. 样式表有两种引用的方法:一种是直接写在html的< ...

  4. 本地安装git

    在ubuntu上安装git特别简单 首先用命令查看是否安装git 在终端输入 git 如果没有安装 sudo apt-get install git 安装完之后,测试是否安装成功: git --ver ...

  5. MySQL 添加列,修改列,删除列

    创建后表的修改 alter table 语句用于创建后对表的修改, 基础用法如下: 添加列 基本形式: alter table 表名 add 列名 列数据类型 [after 插入位置]; 示例: 在表 ...

  6. IE8 CSS hack 测试

    IE8正式版出来有一段日子了,但是针对ie8正式版的CSS hack却很少,其实这是值得庆幸的,因为ie8修复了很多IE6和IE7的一些BUG,更加接近W3C标准.针对IE8正式版的CSS hack目 ...

  7. 定时清理mysql数据。

    Linux有一个非常好用的任务管理工具.crond.首先你得确认你这个服务是开启的. service crond start 并且设置为开机就启动. chkconfig --level crond o ...

  8. 正则表达式中参数g、i、m的作用(share)

    参数 g g 只影响于 exec.match 方法. 若不指定 g,则:每次调用 exec 都只返回第一个匹配:match 也是只返回第一个匹配. 若指定 g,则:每次调用 exec 都从上一个匹配之 ...

  9. Apache HttpClient使用之阻塞陷阱

    前言: 之前做个一个数据同步的定时程序. 其内部集成了某电商的SDK(简单的Apache Httpclient4.x封装)+Spring Quartz来实现. 原本以为简单轻松, 喝杯咖啡就高枕无忧的 ...

  10. yii2后台上传图片,前台也能显示 的方法

    备注:::很low    高端人士 勿入  支持 吐槽  有你们的吐槽才有我的进步 还不会yii上传的  go   out    (哈哈,开玩笑)