2019独角兽企业重金招聘Python工程师标准>>>

SiteMesh框架是由OpenSymphony组织来开发的,下载地址:http://www.opesymphony.com/sitemesh/download.action

使用步骤:

  1. 将下载的sitemesh-2.4.jar文件复制到Web应用的lib下

  2. 为了能是SiteMesh框架可以处理所有的用户请求,修改web.xml文件,配一个Filter,class为com.opensymphony.module.sitemesh.filter.PageFilter,   url-mapping 为/*

  3. 要在Jsp页面中使用SiteMesh的标签库。还要导入SiteMesh的标签库,SiteMesh提供了两个标签库,一个是page还有一个是decorator

本文为大家展示一个简单的SiteMesh例子。

首先创建一个web工程.名字就叫做SitemeshSample.将sitemesh-2.3.jar放到lib目录下。

在web.xml中加入如下片段:

<filter>

<filter-name>sitemesh</filter-name>

<filter-class>

com.opensymphony.module.sitemesh.filter.PageFilter

</filter-class>

</filter>

<filter-mapping>

<filter-name>sitemesh</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

这里定义了一个过滤器.所有的请求都交由sitemesh来处理

在WEB-INF下创建一个decorators.xml文件,内容如下:

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

<decorators defaultdir="/decorators">

<decorator name="main" page="main.jsp">

<pattern>/*</pattern>

</decorator>

</decorators>

这是定义了模板页,也就是所有页面在返回给客户端之前,先在这里加上装饰,套上模板。

defaultdir="/decorators"说明了模板页的路径。<decorator name="main" page="main.jsp">模板页的名称。    <pattern>/*</pattern>表示对所有的response进行处理

在web下面建一个文件夹取名decorators.在decoratots下面创建上面定义的模板页面main.jsp,内容如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title><decorator:title />

</title>

<body>

<p>Add head decorator...</p>

<decorator:body />

<p>Add foot decorator...</p>

</body>

</html>

说明:

<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>

此处为decorator标签的声明。因为我们下面要使用到它

<decorator:title />

把请求的原始页面的title内容插入到<title></title>,比如我们要请求index.jsp页面的时候。会把index.jsp中的title的内容放入到这里

<decorator:body />

把请求的原始页面的body内容插入到<body></body>,发现没有我们在这句的前面加上了<p>Add head decorator...</p>和<p>Add foot decorator...</p>

相当于给我们请求的页面的body内容加上了头部和尾部.实现了模板功能。

在WEB-INF下创建我们要请求访问的页面index.jsp,内容如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>SiteMesh Sample Site</title>

</head>

<body>

Welcome to the SiteMesh sample...

</body>

</html>

把web工程部署到tomcat容器中。

输入http://localhost:8080/SitemeshSample/index.jsp

页面效果如下:

Add head decorator...

Welcome to the SiteMesh sample...

Add foot decorator...

不难发现,我们index.jsp中只有Welcome to the SiteMesh sample... 一句。但是在返回给我们之前套上了main.jsp模板页。在它的前面和后面分别加上了一句话。通过Sitemesh我们可以很容易实现页面中动态内容和静态装饰外观的分离。

转载于:https://my.oschina.net/china008/blog/335396

页面修饰框架SiteMesh的简单使用相关推荐

  1. idea ssm框架 mysql_idea搭建简单ssm框架的最详细教程(新)

    为开发一个测试程序,特搭建一个简单的ssm框架,因为网上看到很多都是比较老旧的教程,很多包都不能用了,eclipes搭建并且其中还附带了很多的其他东西,所以特此记录一下mac中idea搭建过程. 另: ...

  2. openshift_云上的播放框架变得简单:Openshift模块

    openshift 仅仅几年前,找到一个负担得起的Java Web应用程序托管解决方案是一项艰巨的任务,而寻找免费的托管解决方案是一项不可能的任务. 更不用说考虑自动缩放,单命令部署,持续集成等问题了 ...

  3. 云上的播放框架变得简单:Openshift模块

    仅仅几年前,找到一个负担得起的Java Web应用程序托管解决方案是一项艰巨的任务,而寻找免费的托管解决方案是一项不可能的任务. 更不用说甚至考虑自动缩放,单命令部署,持续集成等事情,这都是科幻小说. ...

  4. 【RuoYi框架】RuoYi框架学习超简单案例 - 新闻管理系统(附源码)

    文章目录 前言 一.需求 二.数据库设计 1.新闻菜单表(树表) 1.新闻内容表 三.运行RuoYi项目 1.创建数据库,运行sql文件 2.启动运行RuoYi项目 四.生成代码 1.添加字典(菜单显 ...

  5. 如何利用laragon框架制作一个简单的应用?

    如何利用laragon框架制作一个简单的应用? 一.搭建环境 1. 安装Laragon 1.1 打开安装包用的语言 选择自己习惯用的语言 1.2 选择安装地址 1.3 选择Next,开始install ...

  6. 使用Java+SSM框架+JSP开发简单在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户、物品的协同过滤推荐算法 大数据 机器学习 SimpleMovieRecommendOnline

    使用Java+SSM框架+JSP开发简单在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户.物品的协同过滤推荐算法 大数据 机器学习 SimpleMovieRecommendOnline 一.项目简 ...

  7. 网购电商管理系统 nodejs中express框架 mysql数据库 web开发 B/S框架 ejs模板 简单服务器开发

    背景介绍 这个"大项目"开发背景是大二上的C++课设,王老师不明所以的就让我们制作一个类商用的网店管理系统,而且不限制语言,不限制框架,独立完成,时间大约10周.说实话这个项目对刚 ...

  8. 页面调度框架 justep.Shell

    1.wex5首页模板实现了页面调度框架功能,来实现调度到所定义的页面.和windowdialog有所不同: 1)多数情况下使用页面调度这种方法. 2)页面调度框架页面没有返回值,windowdialo ...

  9. 广告域名审核之后跳转技术:点击域名A页面iframe框架下的链接,域名A跳转到域名B...

    广告域名审核之后跳转技术:点击域名A页面iframe框架下的链接,域名A跳转到域名B 注:域名B为afish.cnblogs.com 域名A页面代码: <!DOCTYPE html PUBLIC ...

  10. 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】...

    页面传值--最佳答案6种方式: 一. 使用QueryString变量 QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全 ...

最新文章

  1. 低版本IE浏览器不支持前端代码修改属性remove()的解决办法
  2. IP协议号(TCP协议号/UDP协议号)
  3. sql导航函数 NTH_VALUE
  4. 12、mybatis返回map单条及多条记录
  5. destoon 屏蔽会员组,让个人,游客不显示
  6. ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Client-specific 的区别
  7. codeforce 804B Minimum number of steps
  8. 第一 二章 计算机基础知识,[精品]第二章-计算机基础知识.doc
  9. MySQL求n以内素数_C++ 实现求小于n的最大素数的实例
  10. python django 网页 html \n不换行
  11. 高程计算 高程计算 高程计算
  12. 荒野行动android模拟,荒野行动用模拟器玩教程 荒野行动模拟器不支持机型解决方法...
  13. 西门子S7200PLC连接CHNet-S7200PD实现以太网通信配置方法
  14. Cmake编译时无法打开包括文件: “pthread.h”
  15. rabbitmq完整学习-springboot整合rabbitmq
  16. 本周上榜的这9本原创技术书很赞,《数学之美》作者吴军博士新书霸榜
  17. Android 网络属性详解
  18. 前端开发Vue项目实战:电商后台管理系统(八)------ 订单管理模块
  19. 天池案例-贷款违约预测(lgb)
  20. CRM系统的价值效益

热门文章

  1. 2021-05-26python 批量更改图片格式
  2. ICESat2学习笔记4 :Windows下使用HDFView查看ICESat-2 hdf5文件
  3. Windows编译Nginx源码
  4. C# winform使用InstallShield2019打包
  5. 联想电脑杜比音效--低音炮配置图
  6. Python.暴力破解rar密码
  7. 矩阵分析与应用课程资料
  8. x7 z8750 linux,x7-z8750 vs m3-7y30
  9. 时钟转盘html源代码
  10. 如何使用代理服务器上网,从基础到高手--转