官网:http://wiki.sitemesh.org/wiki/display/sitemesh/Home
也可以下载官方的示例Demo参考和学习,这里我只做一个简单示例,演示最基本的使用
首先就是加Jar包,我用的是sitemesh-2.4.2.jar,然后在web.xml中增加过滤器:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <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> </web-app>
增加SiteMesh配置文件decorators.xml,该文件放在WEB-INF下:
<?xml version="1.0" encoding="UTF-8"?> <decorators defaultdir="/layouts/"> <!-- 不需要过滤的请求 --> <excludes> <pattern>/static/*</pattern> <pattern>/remote/*</pattern> </excludes> <!-- 定义装饰器要过滤的页面 --> <decorator name="default" page="default.jsp"> <pattern>/*</pattern> </decorator> </decorators>
在根目录下新建文件夹layouts,然后新建三个JSP,一个是默认,一个输出头,一个输出尾,默认页面引用其他两个。
默认页面default.jsp:
<%@ page contentType="text/html;charset=UTF-8"%> <%@ taglib prefix="sitemesh" uri="http://www.opensymphony.com/sitemesh/decorator" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <html> <head> <title>SiteMesh示例-<sitemesh:title/></title> <sitemesh:head/> </head> <body> <%@ include file="/layouts/header.jsp"%> <div id="content"> <sitemesh:body/> </div> <%@ include file="/layouts/footer.jsp"%> </body> </html>
简单说明:
- 引入了SiteMesh标签。
- <sitemesh:title/> 会自动替换为被过滤页面的title。
- <sitemesh:head/> 会把被过滤页面head里面的东西(除了title)放在这个地方。
- <sitemesh:body/> 被过滤的页面body里面的内容放在这里。
- 头部引入js和css,都可以在其他重用。
头页面header.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 菜单信息
尾页面footer.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 版权信息
在根下新建一个文件夹static,用于实验是否拦截,在该文件夹下新建JSP:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>有人拦截我吗?</title> </head> <body> 有人拦截我吗? </body> </html>
访问:http://127.0.0.1:8080/sitemesh/index.jsp这个会拦截
访问:http://127.0.0.1:8080/sitemesh/static/index.jsp则不会拦截处理
根据页面看实际效果
请您到ITEYE网站看 java小强 原创,谢谢!
http://cuisuqiang.iteye.com/!
自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!
相关推荐
在"**sitemesh入门demo**"中,我们将学习如何设置和使用Sitemesh来创建一个简单的Web应用程序。这个demo是基于博主的**Sitemesh入门和使用笔记**,提供了对应的源码供学习者实践和参考。以下是关于Sitemesh的详细...
- **SiteMesh学习入门.jpg**:可能是介绍Sitemesh基本概念的流程图或者关键步骤的截图。 - **sitemesh2003.ppt**:这可能是一个PowerPoint演示文稿,包含了2003年的Sitemesh介绍或教程。 - **sitemesh.rar** 和 *...
Sitemesh是一款强大的Web页面布局和装饰框架,它主要用于帮助开发者实现网站的统一外观和...通过这个简单的入门教程,你可以快速掌握Sitemesh的基本操作,并将其应用到自己的项目中,提升网站的用户体验和设计品质。
这个“sitemesh简单demo”是一个使用 Maven 构建的项目,旨在提供一个快速入门的示例,帮助初学者理解并掌握 sitemesh 的基本用法。 在 Web 开发中,sitemesh 通过拦截 HTTP 请求,将用户定义的页面模板(通常称为...
- **入门示例**: - **RaceTrack应用**:本书通过一个名为RaceTrack的应用实例介绍了Grails的基本用法。包括应用的创建、领域模型定义、控制器编写等。 - **Hello, Grails!**:通过创建一个简单的“Hello, Grails!...
它包含了诸如 Hibernate、ibatis、Struts、Spring、DBUnit、Ant、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit 和 JSTL 等组件。这些工具和框架被精心集成到一起,以便为开发者提供一套完整的开发解决...
9. **整合性**:与Hibernate、SiteMesh、JSTL等其他技术无缝集成。 10. **配置文件管理**:通过配置文件管理Action,使项目结构更加清晰。 11. **Ajax主题**:提供预设的Ajax主题,便于实现Ajax功能。 ### 下载与...
12.2.1 SiteMesh 266 12.2.2 Tiles 267 12.2.3 JFreeChart 269 12.3 内部组件系统 271 12.3.1 Bean 271 12.3.2 常量 272 12.3.3 注入 272 12.3.4 Struts内部扩展点 273 12.4 编写浏览路径插件 274 12.5 小结 278 第...
- **第14章至第19章整合其他框架**:分别讲述了Struts2与其他流行框架(如Spring、JSF、SiteMesh、JasperReports、JFreeChart、Hibernate)的整合方法,扩展了Struts2的功能范围。 - **第20章至第21章案例分析**:...
20. **SiteMesh和Spring框架集成**:解释如何利用SiteMesh进行页面布局管理和使用Spring框架进行业务逻辑处理。 21. **教程和开发环境**:提供安装配置教程,如SMTP服务器设置,以及从旧版AppFuse迁移至新版的指南...
#### 一、基础知识与入门 本节主要介绍如何基于SSM(Spring、SpringMVC、MyBatis)框架搭建一个简单的Web应用程序,并实现一个HelloWorld示例。 **1. 导入必要的依赖** - **SpringMVC**: MVC(Model-View-...