简介:

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

下载SiteMesh:

  官方下载地址:http://wiki.sitemesh.org/wiki/display/sitemesh/Home

使用:

我们这里使用IDEA进行演示

导入SiteMesh  jar包

在web文件中的WEB_INF中创建lib文件夹 再把SiteMesh jar包放入 lib中。

在 web.xml 中配置 Filter(过滤器)

    <!--定义过滤器-->
<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>

  

再创建一个decorators.xml文件

<?xml version="1.0" encoding="utf-8" ?>

<decorators defaultdir="/layout/">
<!-- 先定义不过滤的页面,即排除页面 -->
<excludes>
<pattern>/assets/*</pattern>
</excludes> <!-- 定义需要修饰的页面 -->
<decorator name="book" page="book_tpl.jsp">
<pattern>/book/*</pattern>
</decorator> <decorator name="cart" page="cart_tpl.jsp">
<pattern>/cart/*</pattern>
</decorator> </decorators>

  

之后,创建模板文件  /layouts/book_tpl.jsp

<!doctype html>
<html lang="en">
<head>
<title><sitemesh:title /></title>
<sitemesh:head />
</head>
<body>
<header>
<%@include file="book_header.jsp" />
</header> <div>
<sitemesh:body />
</div> <footer>
<%@include file="book_footer.jsp" />
</footer> <!-- 其他用法 --> <!-- 可以通过 meta 在页面之间传递数据 -->
<!-- <meta name='xxx' content='ksjfkjskf' -->
<decorator:getProperty property="meta.xxx" /> <!-- 可以通过 usePage 引用到原始页面的 jsp 对象 -->
<decorator:usePage id="myPage" />
<%= myPage.getRequest().getAttribute("xxx") %> <!-- 其他,自行总结 -->
</body>
</html>

 就可以使用了

可以去下载完整的Demo 地址:https://github.com/oukele/StieMeshDemo

最新文章

  1. eclipse各版本介绍
  2. Nginx反向代理+keepalived
  3. libuv(不断更新)
  4. try catch finally的一些用法
  5. 20161005 NOIP 模拟赛 T3 解题报告
  6. 2016HUAS暑假集训训练2 J - 今年暑假不AC
  7. poj 1190 生日蛋糕
  8. POJ2229 - Sumsets(完全背包)
  9. SxsTrace工具使用方法(转)
  10. 14.5.2 Changing the Number or Size of InnoDB Redo Log Files 改变InnoDB Redo Log Files的数量
  11. java学习笔记 --- StringBuffer类
  12. 机器学习:Python中如何使用支持向量机(SVM)算法
  13. 【Unity3D与23种设计模式】桥接模式(Bridge)
  14. C# WPF 使用委托修改UI控件
  15. jsp的page、request、session、application四个作用域的作用
  16. 20165223 结对编程之四则运算week2-整体总结
  17. git和github新手快速操作流程
  18. JavaScript Dom 查找
  19. IE浏览器使用VLC实时显示视频(海康、大华)
  20. 大杂烩 -- ArrayList的动态增长 源码分析

热门文章

  1. rocketMq消息的发送和消息消费
  2. SGI STL源码stl_vector.h分析
  3. vue60秒倒计时
  4. Javascript去掉base64中的回车换行
  5. 第二周Java课堂作业
  6. 剑指offer3:从尾到头打印链表每个节点的值
  7. C语言 --- 初级指针
  8. Forest Program(dfs方法---树上的环)
  9. 史上最全的spark面试题——持续更新中
  10. Bootstrap3基础教程 03 导航栏