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. ADAS越来越热,这家公司为何能俾睨群雄
  2. 【项目管理】上线切割计划实践
  3. qt百度地图html,Qt的QWebChannel和JS、HTML通信/交互驱动百度地图
  4. mysql中count(*)和count(1)和count(column)区别
  5. 独家=垄断?从抖音快手电影宣发签独家谈起
  6. 经验总结:图书管理系统java课程设计
  7. linux下软件的卸载,Linux下各种格式软件的安装及卸载方法
  8. Pthon入门--range()函数
  9. Linux Server - NIS
  10. android 按键,Android 7.0 Power 按键处理流程
  11. 决策树后剪枝算法(二)错误率降低剪枝REP
  12. 如何编写好的软件设计文档
  13. MAVEN 修改为阿里数据源
  14. 湖南大学计算机考研科目2020,2020湖南大学计算机与软件工程考研初试科目、参考书目、录取情况全解析...
  15. Js 获取当前时间上一个月 YYYY-mm
  16. 通过全局钩子发送自定义消息,实现进程通信
  17. 快速让网站内容可以复制
  18. 新浪,腾讯原生态SDK分享
  19. JavaScript基础题目(附答案)
  20. 《富爸爸,穷爸爸》读后感——怎么实现财务自由

热门文章

  1. OSPF —— 重分发(配置命令)
  2. 无法卸载和重装photoshop CS3 的解决办法
  3. ubuntu硬盘序列号怎么查询_如何在Linux中查找硬盘的详细信息?
  4. 学校计算机房主机系统,学校机房电脑系统恢复的方法
  5. 我的知识管理工具列表
  6. 锐捷linux客户端进路由器,锐捷WLAN无线产品之SSH管理
  7. 电脑网银服务器无效响应,台州银行网银管家
  8. 计算机操作系统汤小丹版课后答案
  9. 面向对象的数据库db4o: 初识db4o
  10. jbd2 mysql_jbd2 BUG · xiewen/xiewen.github.io Wiki · GitHub