一、简介

  SiteMesh是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。
  它能通过创建一个包装对象,也就是装饰来包裹的对象。尽管它是由Java语言来实现的,但是它能与其他Web应用很好的集成。

二、使用步骤

1、下载sitemesh jar包

jar包下载官网:http://wiki.sitemesh.org/wiki/display/sitemesh/Home

2、把sitemesh jar 导入项目中

创建decorators.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!-- defaultdir 是模板所在的文件夹路径 -->
<decorators defaultdir="/layouts"> <!-- 下面是过滤css和js文件,按实际情况写 -->
<excludes>
<pattern>/assets/*</pattern>
</excludes> <!-- /* 所有页面,按模板 phone_template.jsp 来修饰 -->
<decorator name="phone" page="phone_template.jsp">
<pattern>/*</pattern>
</decorator> </decorators>

web.xml文件配置

    <!-- 定义过滤器-->
<filter>
<!-- 定义过滤器的实现类 -->
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter> <!-- 定义过滤器拦截URL地址 -->
<filter-mapping>
<!-- 过滤器的名称 -->
<filter-name>sitemesh</filter-name>
<!-- 过滤器负责拦截的URL,如下定义会拦截所有 -->
<url-pattern>/*</url-pattern>
</filter-mapping>

模板(phone_template.jsp):

<%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!doctype html>
<html lang="en">
<head>
<!-- sitemesh:title 的作用是,将要修饰的页面的title引入 -->
<title><sitemesh:title/></title>
<!-- 不用在意下面的样式引入 -->
<link href="/js_css/css/bootstrap.css" rel="stylesheet">
<link href="/js_css/css/offcanvas.css" rel="stylesheet">
</head> <body class="bg-light"> <%@include file="phone_head_nva.jsp"%> <%@include file="phone_body_nva.jsp"%> <main role="main" class="container">
<!-- 这里会把要修饰的页面的body部分引入 -->
<sitemesh:body></sitemesh:body>
</main> <%@include file="phone_footer.jsp"%> </body>
</html>

总之,定义模板的作用是,让指定的网页用模板修饰,比如模板的上面有一个导航栏,则被模板修饰的网页都有导航栏。

最新文章

  1. MySQL性能优化
  2. js封装tab标签页
  3. 对OpenGL的GLFrame框架进行的扩展截至2014年11月29日
  4. sql 更新重复数据只取一条记录
  5. Android 动态刷新listview中的数据
  6. Linux IP 路由实现
  7. Qt全局热键(windows篇)(使用RegisterHotKey和句柄进行注册)
  8. linux命令readlink
  9. 聊聊Docker
  10. Axure RP 8 注册码
  11. Linux文件同步
  12. Windows 7 SP1无人值守自动应答文件制作
  13. centos中文字符集,中文日志
  14. HDU 5954 - Do not pour out - [积分+二分][2016ACM/ICPC亚洲区沈阳站 Problem G]
  15. EF利用重写SaveChanges()方法实现 审计日志记录
  16. part1:4-linux快速体验
  17. Android——Android Bundle类(转)
  18. Unidac手工安装
  19. 帝国cms刷新内容页提示.phome_ecms_news_data_&#39; doesn&#39;t exist
  20. 转用Jmeter测试RabbitMQ

热门文章

  1. 14)载入png图片
  2. 1.Redis简介/配置文件
  3. Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 文件的关系
  4. Laravel常见问题总结
  5. AFNetWorking3.0.4(Weather Demo)
  6. Matlab高级教程_第二篇:关于MATLAB转C#过程中遇到输出两组参数的问题
  7. Linux centos 下安装nginx
  8. Exchang Online 保护策略
  9. 一、linux-mysql 运维DBA介绍
  10. 26)PHP,数据库表格中项的数据类型