对应之前的SiteMesh2简单研究笔记 http://sgq0085.iteye.com/blog/2072882
一.导入依赖
导入在中央库中的依赖方法如下
<dependency> <groupId>org.sitemesh</groupId> <artifactId>sitemesh</artifactId> <version>3.0.0</version> </dependency>
二.web.xml中添加Filter
在web.xml中添加下面这个filter
<filter> <filter-name>sitemesh</filter-name> <!--<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>--> <filter-class>org.sitemesh.config.ConfigurableSiteMeshFilter</filter-class> </filter> <filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
三.装饰器decorator
编写装饰器JSP页面 WEB-INF/decorator/decorator.jsp
<!DOCTYPE html> <html> <head> <title>My Site - <sitemesh:write property='title'/></title> <sitemesh:write property='head'/> </head> <body> <sitemesh:write property='body'/> </body> </html>
四.配置文件sitemesh3.xml
<sitemesh> <!--默认情况下,sitemesh 只对 HTTP 响应头中 Content-Type 为 text/html 的类型进行拦截和装饰,可以添加更多的 mime 类型--> <mime-type>text/html</mime-type> <mime-type>application/xhtml+xml</mime-type> <!-- 不被sitemesh装饰的路径 --> <mapping path="/static/*" exclue="true"/> <mapping path="/api/*" exclue="true"/> <!-- 全局默认装饰器 --> <mapping path="/*" decorator="/WEB-INF/decorator/decorator.jsp"/> <!-- 同时使用多个装饰器 --> <mapping path="/site*"> <decorator>/WEB-INF/decorator/decorator.jsp</decorator> <decorator>/WEB-INF/decorator/decorator2.jsp</decorator> </mapping> <!-- 多个地址使用同一个装饰器 --> <mapping path="*.htm" decorator="/WEB-INF/decorator/html.jsp"/> <mapping path="*.html" decorator="/WEB-INF/decorator/html.jsp"/> </sitemesh>
五.与Spring MVC结合时灵活运用方式
当与Spring MVC结合使用的时候,如果需要针对不同的页面,展示不同的目录功能,其他的页面都可以通过路径来很容易的实现,但是由于首页一般是通过下面这段代码配置
<mvc:view-controller path="/" view-name="portal" />
有两种方法解决
第一种,将上面一段配置改为如下
<mvc:view-controller path="/" view-name="redirect:/portal" /> <mvc:view-controller path="/portal" view-name="portal" />
第二种方法,写一个Controller,RequestMapping匹配路径/portal,由Controller返回portal,通过这种方式,可以在Controller方法中完成一些特殊的要求。比如某些情况下不是到首页而是其他路径。
<mvc:view-controller path="/" view-name="redirect:/portal" />
写在后面
1.使用sitemesh统一页眉页脚菜单等,针对另外一些引用比如引入jqGrid需要引入一些CSS和JS文件,还是统一到一个JSP中,再在具体的JSP页面中通过指令元素include引入
<%@ include file="/WEB-INF/****/****.jsp"%>
2.引入的时候需要注意 page指令中contentType属性如果各个JSP不一致(比如text/html;和charset=UTF-8中间有没有空格)会导致异常。
3.放一个自己的decorator.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:set var="ctx" value="${pageContext.request.contextPath}"/> <%--使用sitemesh统一页眉页脚菜单等,具体JSP中使用JSP指令元素include引入具体组件组装的JSP--%> <%--<%@ include file="/WEB-INF/****/****.jsp"%>--%> <%--添加标准模式(standard mode)的声明 CSS1Compat 而不是BackCompat --%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%--语言属性 根元素指定 lang 属性--%> <html lang="zh-CN"> <head> <title>WEB <sitemesh:write property='title'/></title> <%--字符编码 明确声明字符编码--%> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <meta http-equiv="Cache-Control" content="no-store"/> <meta http-equiv="Pragma" content="no-cache"/> <meta http-equiv="Expires" content="0"/> <%--IE兼容模式 通知IE采用其所支持的最新的模式--%> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <%--国产浏览器默认采用高速模式webkit内核--%> <meta name="renderer" content="webkit"> <link type="image/x-icon" rel="shortcut icon" href="${ctx}/static/images/favicon.ico"> <%--HTML5中引入css文件的标签link的type属性默认值为"text/css",所以不需要设置--%> <link rel="stylesheet" type="text/css" href="${ctx}/static/bootstrap/3.2.0/css/bootstrap.min.css"/> <!--[if lt IE 9]> <script type="text/javascript" src="${ctx}/static/html5css3/html5shiv.min.js"></script> <script type="text/javascript" src="${ctx}/static/html5css3/respond.min.js"></script> <![endif]--> <%--HTML5中引入JS文件的标签lscripttype属性默认值为"text/javascript",所以不需要设置--%> <script type="text/javascript" src="${ctx}/static/jquery/jquery-1.11.1/jquery-1.11.1.min.js"></script> <script type="text/javascript" src="${ctx}/static/bootstrap/3.2.0/js/bootstrap.min.js"></script> <sitemesh:write property='head'/> </head> <body> <sitemesh:write property='body'/> </body> </html>
相关推荐
【sitemesh3-demo】是一个基于Sitemesh3框架的示例项目,旨在展示如何在Web应用程序中有效地实现页面布局和装饰功能。Sitemesh是一个开源的Java Web应用框架,主要用于增强网页的外观和结构,通过定义装饰模板,可以...
### Sitemesh 3 的使用及配置 #### 一、Sitemesh 3 简介 Sitemesh 是一个非常实用的Web页面布局与修饰框架,它通过Servlet中的Filter来实现网页的装饰功能,类似于ASP.NET中的“母版页”技术。这种技术允许开发者...
**Sitemesh3** 是一个开源的网页布局和装饰框架,用于Java Web应用程序。它主要目的是帮助开发者统一网站的外观和感觉,通过提供一种简单的方式来装饰(或模板化)整个Web应用中的页面。Sitemesh3是Sitemesh项目的第...
在“sitemesh框架简单例子”这个教程中,我们将深入理解Sitemesh的基本概念和用法。 首先,我们需要了解Sitemesh的工作原理。Sitemesh通过拦截HTTP请求,对返回的HTML内容进行装饰。它使用一种叫做装饰器...
**SpringMVC、Freemarker与Sitemesh3详解** SpringMVC是Spring框架的一部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。SpringMVC提供了一个灵活的处理机制,包括处理器映射、视图解析、数据绑定...
**Sitemesh3 SDK详解** Sitemesh 是一个开源的 Web 应用程序框架,用于增强网站的布局和装饰功能。Sitemesh3 是其第三个主要版本,它提供了更现代的架构和更好的性能,旨在帮助开发者更高效地管理和美化他们的网页...
springmvc + mybatis + sitemesh3 超简洁例子 整合springmvc mybatis 方法请看: http://blog.csdn.net/kokoyuo/article/details/52808510
在本项目中,我们探索的是一个基于Spring MVC、MyBatis和Sitemesh3的超简洁登录示例,其中还集成了MySQL数据库和MD5加密验证。这是一个经典的Java Web开发框架组合,常用于构建高效、可扩展的企业级应用。下面我们将...
总的来说,Sitemesh3提供了一种强大的方式来管理Web应用的页面布局和风格,通过配置和简单的模板语言,可以快速实现复杂的页面装饰功能。`sitemesh3demo`是学习和理解Sitemesh3功能和用法的宝贵资源,通过实际操作和...
**初试sitemesh实现模块简易整合** Sitemesh 是一个开源的网页布局框架,用于在Java Web应用程序中实现页面装饰(Decorator)模式。它可以帮助开发者统一网站的头部、底部、侧边栏等通用部分,使得网站设计更加整洁...
Java Sitemesh是一个开源的页面布局和装饰...通过研究这些资源,你可以更好地理解和学习如何在实际项目中应用Sitemesh。学习和掌握Sitemesh能让你在开发Java Web应用时更加得心应手,提升项目的整体质量和用户体验。
##### 3. 配置装饰器 - 创建装饰器配置文件`[web-app]/WEB-INF/decorators.xml`。 - 文件结构示例: ```xml <!-- 在这里定义装饰器 --> ``` ##### 4. 可选配置 - 创建可选配置文件`[web-app]/WEB-INF/...
这个demo是基于博主的**Sitemesh入门和使用笔记**,提供了对应的源码供学习者实践和参考。以下是关于Sitemesh的详细讲解: 1. **安装与配置** - 首先,你需要将Sitemesh的JAR文件添加到你的项目类路径中。这可以...
通过研究这个"siteMesh demo+文档",开发者可以快速掌握SiteMesh的基本使用,同时也能了解其在实际项目中的应用方式。无论你是初学者还是有经验的Web开发者,SiteMesh都能帮助你提升网站的用户体验,实现高效且一致...
下面是一个简单的例子,展示了如何在Spring MVC项目中同时使用Sitemesh和Freemarker。 **`web.xml`配置** ```xml <filter-name>sitemesh <filter-class>...
标题:Sitemesh技术的应用 描述与标签:Sitemesh技术的应用 Sitemesh技术是Web开发领域中一种用于页面装饰的重要工具,尤其在Java Web应用程序中被广泛应用。其核心功能在于能够统一网站的外观风格,使不同功能...
**Sitemesh** 是一个广泛使用的开源Web应用框架,它主要功能是提供页面布局和装饰功能,用于统一网站的外观和感觉。Sitemesh通过在Web应用中引入“母版”(Master Page)的概念,使得开发者可以轻松地创建一致性的...
这个“sitemesh简单demo”是一个使用 Maven 构建的项目,旨在提供一个快速入门的示例,帮助初学者理解并掌握 sitemesh 的基本用法。 在 Web 开发中,sitemesh 通过拦截 HTTP 请求,将用户定义的页面模板(通常称为...
3. **配置SiteMesh**: 在`sitemesh.xml`中指定布局文件的位置和装饰策略。 4. **标记页面内容**: 在需要装饰的JSP或HTML页面中添加特殊的SiteMesh注释或标签,告知SiteMesh如何插入到布局文件中。 5. **运行应用**...