sitemesh 使用方法
2024-10-08 19:18:30
一、简介
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>
总之,定义模板的作用是,让指定的网页用模板修饰,比如模板的上面有一个导航栏,则被模板修饰的网页都有导航栏。
最新文章
- MySQL性能优化
- js封装tab标签页
- 对OpenGL的GLFrame框架进行的扩展截至2014年11月29日
- sql 更新重复数据只取一条记录
- Android 动态刷新listview中的数据
- Linux IP 路由实现
- Qt全局热键(windows篇)(使用RegisterHotKey和句柄进行注册)
- linux命令readlink
- 聊聊Docker
- Axure RP 8 注册码
- Linux文件同步
- Windows 7 SP1无人值守自动应答文件制作
- centos中文字符集,中文日志
- HDU 5954 - Do not pour out - [积分+二分][2016ACM/ICPC亚洲区沈阳站 Problem G]
- EF利用重写SaveChanges()方法实现 审计日志记录
- part1:4-linux快速体验
- Android——Android Bundle类(转)
- Unidac手工安装
- 帝国cms刷新内容页提示.phome_ecms_news_data_&#39; doesn&#39;t exist
- 转用Jmeter测试RabbitMQ
热门文章
- 14)载入png图片
- 1.Redis简介/配置文件
- Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 文件的关系
- Laravel常见问题总结
- AFNetWorking3.0.4(Weather Demo)
- Matlab高级教程_第二篇:关于MATLAB转C#过程中遇到输出两组参数的问题
- Linux centos 下安装nginx
- Exchang Online 保护策略
- 一、linux-mysql 运维DBA介绍
- 26)PHP,数据库表格中项的数据类型