sitemesh是jsp页面的一个前端框架,其主要思想是GOF设计模式中的装饰器模式,在笔者看来就是提高代码的重用性,减少重复的代码,方面工程的管理。具体的还不清楚,写下这博文知识为了巩固和记录自己今天使用sitemesh的一些笔记。

使用sitemesh的步骤:

  1. 导入 sitemesh的jar包,该包可以在官网上下载最新的稳定版。目前最新是sitemesh-2.4.2.jar

  2. 配置sitemesh的核心过滤器,主要用来拦截需要被装饰的页面。

  3. 在工程的WEB-INF目录下面创建一个decorators.xml文件,里面主要使用来声明需要被拦截装饰的页面和不需要拦截的页面。

  4. 之后就可以创建具体的页面来进行测试了,要使用装饰器的页面需要写meta属性来说明。具体内容看以下代码。

(1)web.xml中需要加入sitemesh的过滤器

<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>

(2)decorators.xml文件

<decorators defaultdir="/layouts">
    
    <!-- 不需要过滤的请求 -->
    <excludes>
        <pattern>/static/*</pattern>  <!-- 表示在static文件夹下的所有页面都不需要进行装饰 -->
    </excludes>

<!-- 定义装饰器要过滤的页面 -->
    <decorator name="default" page="default.jsp">     <!-- 表示对装饰器页面的声明 -->
        <pattern>/*</pattern>
    </decorator>
</decorators>

(3)default.jsp装饰器页面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<!-- 被装饰页面head部分内容将会被放进这里  -->

<title>SiteMesh 示例-<sitemesh:title/></title>    
<sitemesh:head/>            <!-- 被装饰页面head部分内容将会被放进这里  -->

</head>
<body>
    <h3>我是装饰器,我在被装饰页面的body内容之前</h3>
    <div id="content">
        <sitemesh:body/>    <!-- 被装饰页面body内容将会被放进这里  -->
    </div>
    <h3>我是装饰器,对页面进行装饰</h3>
</body>
</html>

(4)index.jsp测试页面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>我是index.jsp的title</title>
</head>
<body>
    <h3>我是index的body</h3>
</body>
</html>

(5)执行画面

该画面在附件

转载于:https://blog.51cto.com/12063788/1856776

sitemesh 使用整理(入门)相关推荐

  1. chrome只能装在c盘吗_电脑硬盘使用与文件整理入门——逃离C盘?

    在Windows 10伴随着SSD固态硬盘大范围铺开的背景下,曾经广泛传播的硬盘使用模式(C盘装系统,D盘装软件,E.F盘放各种文件)是否还有实践意义?我们该基于什么样的理念来养成一些良好习惯,从而安 ...

  2. 18000-6C整理-入门query/CRC-5

    关于session 协议包括物理层和标签识别层 RFID标签使用常识整理 上面链接提到的 进制表述不准确,应该为下图: 一个字指16位 2字节 CW调制:等幅度连续波 RFID梳理 RFID知识点 C ...

  3. Linux驱动开发系列:整理入门Ubuntu知识

    文章目录 Linux驱动开发 一.Linux驱动开发第一期:Ubuntu基础入门 1.Vmware虚拟机安装 2.Vmware内Ubuntu功能介绍 2.1 启动栏介绍 2.2 Ubuntu连接USB ...

  4. Windows10 常用快捷键整理 入门必备 打印版见附件

    Windows10 快捷键 打印版链接 快捷键 指令 Ctrl + C 复制 Ctrl + V 粘贴 Ctrl + Z 撤销 Ctrl + A 全选 Ctrl + S 保存 Ctrl + X 剪切 C ...

  5. Nginx学习整理|入门记录

    目录 1. Nginx概述 1.1  Nginx介绍 1.2 Nginx下载和安装 1.3 Nginx目录结构 2. Nginx命令 3. Nginx配置文件结构 4. Nginx具体应用 4.1 部 ...

  6. 大数据学习指南从入门到精通

    目录 大数据学习指南从入门到精通 前言 一.大数据基础 二.大数据必学Java基础 三.ZooKeeper 四.大数据环境搭建 五.Hadoop 六.Hive 七.HBase 八.Kafka 九.Sc ...

  7. OSG入门_场景图形与OpenSceneGraph概述00

    简单整理入门笔记,内容包括: 1.场景图形与OpenSceneGraph概述: 2.建立一个场景图形:内存管理.叶节点和组节点.渲染状态.文件I/O.NodeKit与osgText; 3.在程序中使用 ...

  8. 深度学习准「研究僧」预习资料:图灵奖得主Yann LeCun《深度学习(Pytorch)》春季课程...

    视学算法报道 编辑:蛋酱 转载自公众号:机器之心 开学进入倒计时,深度学习方向的准「研究僧」们,你们准备好了吗? 转眼 2020 年已经过半,又一届深度学习方向的准研究生即将踏上「炼丹」之路.对于这一 ...

  9. 干货 | 一起聊聊技术与写作

    作者简介 工业聚,携程高级前端开发专家,react-lite, react-imvc, farrow 等开源项目作者,多年文本创作经验. 今天我们来一起探讨一个有趣的话题,技术与写作.技术与写作的关系 ...

  10. 数据分析怎么学?我画了一个导图,又找到22本书

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 万战自称不提刃,生来双眼篾群容. ...

最新文章

  1. 阿里云云盾-智能风控(公测)发布
  2. LayIM.AspNetCore Middleware 开发日记(一)闲言碎语
  3. 【翻译】QEMU内部机制:顶层概览
  4. HDOJ 1202 The calculation of GPA
  5. CentOS 6.9下OpenLDAP 的安装与配置
  6. python发展前景怎么样-python发展前景怎么样
  7. Mybatis的动态创建删除表
  8. 将DevExpress.Utils.ImageCollection变量的image导出
  9. 字符串转换整形数,结构体数组排序
  10. iref streams_如何利用Neo4j Streams并建立即时数据仓库
  11. flask-01-http通信的回顾
  12. 计算机网络 第一章 计算机网络和因特网
  13. 远程服务器格式化,怎么远程服务器做ghost备份图解
  14. 用Python绘制条形图
  15. 测试软件要求规范 (SRS)
  16. 负折射率波导matlab,宁波大学教授—董建峰
  17. TI 评级报告 | RAI Finance:B,展望正面
  18. 使用openpose做的运动检测[附代码]
  19. fpga实操训练(从模块到系统开发)
  20. 线代 | 【提神醒脑】自用笔记串联三 —— 相似对角化 · 二次型 · 合同变换

热门文章

  1. 第五天:在博客路由中使用登录验证,配置 nginx解决前后端跨域
  2. Tp5获取文件,小文件可以获取,大文件获取失败
  3. Git 本地分支关联远程分支
  4. java计算-5%3_JAVA基础教程day03--运算符
  5. 新年祝福:向所有开源工作人员表示真诚的感恩
  6. 网上流传的继承RandomAccessFile缓冲办法并不可靠
  7. 给机械硬盘加个缓存:PrimoCache
  8. JNI中,getBytes()最好指明UTF-8
  9. 全网首发:以管理员身份运行bat,自动切换盘符、目录的正确做法
  10. LINUX开发FIREFOX的插件:编译npruntime