用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. UVa 10047,独轮车
  2. 获取当地天气_Mac 天气预报动态壁纸工具Living Weather HD 4.4.4
  3. 使用FreeImage加载纹理
  4. 数据库管家----ADODB类库.
  5. Modbus协议使用常见问题分析
  6. 大数据之-入门_Hadoop发展历史---大数据之hadoop工作笔记0009
  7. Rhadoop的安装
  8. 2021年必备procreate笔刷推荐下载
  9. 【论文翻译】Class-Incremental Few-Shot Object Detection
  10. linux系统怎么禁用键盘,Linux之禁用笔记本键盘
  11. 实时翻译软件-大家都在用的实时免费翻译软件
  12. 如何用python写脚本_python写脚本
  13. 破解第三课 关键跳和关键CALL
  14. 视频码率,帧率和分辨率
  15. 中小企业融资风险分类有哪些
  16. 元宇宙的东风吹向何处?企业如何乘势布局?
  17. 计算机控制系统康波课后答案,计算机控制系统(康波)第8章部分习题参考解答[1]...
  18. pythonapp推荐_初学python编程,有哪些不错的软件值得一用?
  19. 计算机专业可以当剪辑师,什么人可以做剪辑师?
  20. yapi定义全局变量及应用

热门文章

  1. Word多级标题设置和自动生成目录
  2. 每周分享第 17 期
  3. Android语言/国家代码清单
  4. 计算机培训ppt课件,计算机基础操作培训ppt课件.ppt
  5. androidx.preference.PreferenceScreen 去除左边空白
  6. 电子设计从零开始_第二版(1)
  7. 一图看懂什么是集成电路?
  8. 用sox查看wav声音的基本信息
  9. 北通手柄连接电脑没反应_北通手柄怎么连接电脑
  10. viewUrl 终结者