sitemesh 使用整理(入门)

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)执行画面

该画面在附件

时间: 2024-08-04 00:47:30

sitemesh 使用整理(入门)的相关文章

RequireJs整理入门

首先,Requirejs是一个库,利用它我们能做什么,解决什么问题呢?(根据阮一峰老师的文章,自己总结写了一遍加深影响.) 原文链接:http://www.ruanyifeng.com/blog/2012/11/require_js.html 原先写Js文件都是集中在一个main.js的文件中,当代码量逐渐增大,以及拆分加载的时候就出现里不足. 加载时需要停止网页的渲染,文件越多,浏览器失去响应的时间也越长,一直转圈圈. 如果js之间存在依赖关系,需要严格指明加载顺序的,那么当依赖关系复杂时,代

《鸡啄米C++编程入门系列》系列技术文章整理收藏

<鸡啄米C++编程入门系列>系列技术文章整理收藏 收藏整理鸡啄米C++编程入门系列文章,供个人和网友学习C++时参考 1鸡啄米:C++编程入门系列之前言 2鸡啄米:C++编程入门系列之一(进制数) 3鸡啄米:C++编程入门系列之二(原码.反码与补码) 4鸡啄米:C++编程入门系列之三(VS2010的使用介绍) 5鸡啄米:C++编程入门系列之四(数据类型) 6鸡啄米:C++编程入门系列之五(运算符和表达式) 7鸡啄米:C++编程入门系列之六(算法的基本控制结构之选择结构) 8鸡啄米:C++编程入

模拟电路学习入门的建议(综合整理)

转载自:http://bbs.eetop.cn/viewthread.php?tid=170164 ”模拟电路学习入门“ "如何才算学好模电,数电"一帖引来大家的关注.这里把各位DX的意见整理了一下,便于大家参考.真正掌握一门技术不容易,大家从不同的侧面和经验谈谈自己的体会,对从事这行业的工程师会有点启迪. 找些實用線路集錦或電子製作書看看,有感興趣的就找找理論資料,然後動手練練,很快就是門內漢(or女)了! 先看基本书,再动手练习练习 Razav 如果有耐心看大头英文最好,翻译也很不

数据挖掘入门算法整理

最近正打算学习一些数据挖掘方面的知识,开始看了一些相关博文,但是太过零碎,一直对此没有一个较为系统的认识.周末在图书馆闲逛,偶然看见<大话数据挖掘>一书,发现讲的比较有条理,还蛮适合入门的,因此就读了两章,作此笔记.本文只是介绍了数据挖掘入门的一些算法分类,不涉及具体算法实现. 一下是整理的算法分类图: 1.关联 关联是指一个事件与另一个事件之间的依赖关系.如经典的尿布与啤酒的关系. apriori算法是最经典的关联规则算法,基本思想是:首先从事件中集中找到所有频繁出现的子集.然后在这些子集中

JS搞基指南----延迟对象入门提高资料整理

原文:JS搞基指南----延迟对象入门提高资料整理 JavaScript的Deferred是比较高大上的东西,  主要的应用还是主ajax的应用,  因为JS和nodeJS这几年的普及,  前端的代码越来越多,  各种回调套回调再套回调实在太让人崩溃, 所以就从后端拖了一个延迟对象这货, 用来解决回调地狱这个问题 .  我们使用ajax的时候多数都是为ajax添加回调 ,然后异步向服务器发送请求, 比如如下原生的XHR代码: <!DOCTYPE html PUBLIC "-//W3C//D

requirejs入门知识整理

使用模块化开发处理的三大问题: 1.命名冲突:2.繁琐的文件依赖 3.实现异步非阻塞的文件加载,避免网页失去响应 模块化的设计使得JavaScript代码在需要访问“全局变量”的时候,都可以通过依赖关系,把这些“全局变量”作为参数传递到模块的实现体里,在实现中就避免了访问或者声明全局的变量或者函数,有效的避免大量而且复杂的命名空间管理. requirejs以一个相对于baseUrl的地址来加载所有的代码.如果用了data-main属性,则该路径就是baseUrl,baseUrl亦可通过requi

【学院官方整理】Python学习路线图-适合自学者从入门到项目开发(视频+文档) 干货提炼

亲爱的学员们: 您好!51CTO学院为梦想增值,诚邀您的关注!51CTO学院致力于让专家分享技术并让技术变现,让广大技术爱好者便捷.实惠的获取优质学习资源. 为了方便大家的学习,我们特别整理了Python学习路线图-适合自学者从入门到项目开发(视频+文档) 干货提炼,点击查看更多>> Python学习路线图-适合自学者从入门到项目开发(视频+文档) 干货提炼 本专题涵盖了Python基础.网络编程.WEB开发基础.WEB框架.分布式监控开发.审计堡垒机.FTP服务器.CMDB.主机批量管理.W

机器学习、深度学习的理论与实战入门建议整理

引言 拿到这份文档时想必你的脑海中一直萦绕着这么一个问题,"机器学习/深度学习要怎么学呢?(怎么入门,又怎么进一步掌握?)".关于这个问题其实并没有一个标准答案,有的人可能适合自底向上的学,也就是先从理论和数学开始,然后是算法实现,最后再通过一些项目去解决生活中的实际问题:有的人则可能适合自顶向下的学,也就是在弄清楚什么是机器学习及为什么学机器学习后,先确定一个系统性的用机器学习来解决实际问题的程序,然后找到一个合适的工具,接着再在各种数据集上做练习以不断加强自己的实践能力与巩固对算法

React入门资源整理

另外,附上我搜集的一些比较实用的学习资料,建议先看这些撸起来,再看什么乱七八糟的awsome系列. React入门资源整理 孔明前端团队React项目新手指南:http://www.07net01.com/2015/09/920779.html