用sitemesh框架解决项目统一布局的解决方案

Sitemesh装饰框架

Sitemesh项目简介:
Sitemesh是一个用来在jsp中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态和静态装饰外观的分离。

Sitemesh的作用
Sitemesh是由一个基于Web页面布局,装饰以及与实现村Web应用整合的框架,它能帮助我们在由大量页面构成的项目中创建一支的页面布局和外观 ,如一致的导航条, 一致的banner,一致的版权,等等。它不仅仅能处理动态的内容,如jsp,php,asp等产生的内容,它也能处理静态的内容,如htm的内容,使得它的内容也符合你的页面结构的要求。

如何使用Sitemesh

1.下载SiteMesh
下载地址:
http://www.opensymphony.com/sitemesh/download.action
2、在工程中引入Sitemesh的必要jar包
3.修改你的web.xml里面加入sitemesh的过滤器

pom.xml引入sitemash 的 jar包 :

web-inf底下的web.xml 下的拦截器配置:

上图中的第二个filter-name和图中的第一个filter-name是相匹配的》》
/*<–拦截所有的请求路径 过滤所有的访问路径 -->
url-patten 拦截下的访问路径 会根据 上图中的第二个filter-name 去查询第一个filter-name 并执行第一个 filter-name中的让它的类去处理拦截下的请求

3.任何框架都有它自己的配置文件!Sitemesh也不例外

配置文件
sitemesh默认配置文件名为 decorators.xml(在WEB_INF下创建)核心文件

defaultdir <-- defultdir设置了装饰页面的目录 装饰页面好比如相片框 (不是普通页面 ) 上图的装饰页面放在了decorators目录下(decorators放在WEB_INF下)-- >

decorator标签 区别就是父标签是复数 带有“s”子标签没有;

name =‘main’ page指向 decorators文件夹下的main.jsp装饰页面

mian.jsp 作为主装饰页面

页面content内容需要<%@ taglib prefix=‘xxx’ uri=’ 详情见上图’%>

prefix=‘xxx’ 前缀可以自己随意命名 但是使用的时候 要使用自己的命名;

这里的prefix 使用的是’decorator’

常用的有三个标签 decorator:body
decorator:head
decorator:title

decorator:body的作用:

引入decorator:body</decorator:body>标签

页面所有的内容全都放在这个decorator:body*******…</decorator:body>标签上

标题标签
每个页面要显示不一样的标题就是使用decorator:title/

测试下:

我当前目录下有index.jsp页面
启动tomcat
在浏览器中的地址栏访问这个页面 http://localhost://8080/sitemeshdemo/index.jsp

解析下:

再换个演示:

这里添加了home页面

然后 浏览器地址访问http://localhost:8080/sitemeshdemo/home.jsp

Sitemesh前段框架基础相关推荐

  1. Canvas动画转视频-前段框架whammy

    Canvas动画转视频-前段框架whammy whammy是在前端将canvas动画转视频,它的github地址为:https://github.com/antimatter15/whammy 由于英 ...

  2. Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版 没有什么不可能  之前一直用的是自 ...

  3. python学习框架图-Python学习---Python的框架基础学习

    框架基础 框架实质: 所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 B/S结构的响应: import socket def handle_requ ...

  4. 《Android的设计与实现:卷I》——第2章 框架基础JNI

    第2章 框架基础JNI JNI(Java Native Interface,Java本地接口)是Java平台上定义的一套标准的本地编程接口.JNI允许Java代码与本地代码互操作,即Java代码可以调 ...

  5. python前端学习-------Flask框架基础(建议收藏)

    Flask框架基础 下载并安装Flask框架 Flask基础 第一个Flask应用 开启调试模式 路由 变量规则 构造URL HTTP方法 模板 语法格式 模板变量 控制结构 条件控制语句 `if` ...

  6. data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解

    本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...

  7. php 框架获取服务器,Thinkphp 框架基础之源码获取、环境要求与目录结构分析

    本文实例讲述了Thinkphp 框架基础之源码获取.环境要求与目录结构.分享给大家供大家参考,具体如下: 获取ThinkPHP 获取ThinkPHP的方式很多,官方网站(http://thinkphp ...

  8. 一.Spring框架基础

    JAVAEE框架之Spring 一.Spring框架基础 Spring:春天:轻量级的企业级开发框架,核心是IOC(控制反转)和AOP(面向切面编程). 官网:spring.io Spring–> ...

  9. java ibatis 获取执行的sql_小程序官宣+JAVA 三大框架基础面试题

    每天给你诚意满满的干货 虽然每天都会写代码,但编程语言里有太多知识点,许多知识长时间不用就会忘记,在我们要去参加面试或是其它一些场景下,需要做些题来查缺补漏.我在搜索过程中发现没有太好的刷题小程序,所 ...

  10. (转)Hibernate框架基础——一对多关联关系映射

    http://blog.csdn.net/yerenyuan_pku/article/details/52746413 上一篇文章Hibernate框架基础--映射集合属性详细讲解的是值类型的集合(即 ...

最新文章

  1. python学习费用-学习老男孩python多少钱?收费贵不贵?
  2. 将SpringBoot应用Docker化并部署到SAP云平台
  3. 蓝牙适配器 能同时接多少个设备_便携音箱也能有立体环绕声,JVC智能蓝牙颈挂音箱体验...
  4. Client.Timeout exceeded while awaiting headers
  5. centos 6.5配置apache php mysql_centos6.7下搭配apache php mysql环境
  6. Java 连接LDAP实现验证与查询用户
  7. 人工智能是 6G 诞生的关键!| 极客头条
  8. Python实现机器学习
  9. Django学习-19-缓存
  10. [转]How do I use variables in Oracle SQL Developer?
  11. Protobuf 介绍与实战21:如何生成一维数组、二维数组(repeated数组类型介绍)
  12. 【JavaWeb - 网页编程】三 jQuery 类库
  13. 阿额企鹅我恶趣味企鹅我去恶趣味
  14. RFC 822 中文版 MIME解析基础(4)(第5-6也)
  15. 小米历史版本在哪下载
  16. CodeGear RadStudio Delphi 2007 Delphi2009 最新破解补丁集
  17. 连接Oracle报错 ORA-00257
  18. 支付宝支付接口开发———在线扫码支付
  19. PyMC3中常见连续概率分布
  20. [5 种有效方法] 适用于 Android 的通用解锁图案/密码

热门文章

  1. C++调用Object-C
  2. itextpdf 简介
  3. 现代控制理论 之 LQR控制
  4. ANSI SQL标准和准则
  5. EXCEL出错 8000401a
  6. 程序设计语言的发展过程
  7. 树莓派4B之Windows XP系统安装游戏(二)
  8. SocksCap代理
  9. Gridview中Dataformatstring的使用
  10. 夏泽网 中国渔业统计年鉴年鉴资料网