看了n天项目了,没啥收获,
项目组里面用到了sitemesh,以前也没接触过,就无聊看了一下。
在此总结一下,给需要的人。
需要有配置3个地方。
web.xml decorators.xml sitemesh.xml
web.xml的配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>test_sitemesh</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
decorators.xml路径在web-inf下面,配置如下:
<?xml version="1.0" encoding="utf-8"?>
<decorators defaultdir="/decorators">
<!-- 此处用来定义不需要过滤的页面 -->
<excludes>
</excludes>
<!-- 用来定义装饰器要过滤的页面 ,style.jsp为装饰页面,/*表示装饰所有页面-->
<decorator name="main" page="style.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>
sitemesh.xml的路径也在web-inf下面,配置如下:
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml"/>
<excludes file="${decorators-file}"/>
<page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper">
<param name="property.1" value="meta.decorator"/>
<param name="property.2" value="decorator"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.FrameSetDecoratorMapper">
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.AgentDecoratorMapper">
<param name="match.MSIE" value="ie"/>
<param name="match.Mozilla [" value="ns"/>
<param name="match.Opera" value="opera"/>
<param name="match.Lynx" value="lynx"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper">
<param name="decorator" value="printable"/>
<param name="parameter.name" value="printable"/>
<param name="parameter.value" value="true"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.RobotDecoratorMapper">
<param name="decorator" value="robot"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper">
<param name="decorator.parameter" value="decorator"/>
<param name="parameter.name" value="confirm"/>
<param name="parameter.value" value="true"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.FileDecoratorMapper">
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}"/>
</mapper>
</decorator-mappers>
</sitemesh>
配置文件如上,我看在项目中在web.xml里面是写的sitemeshFilter,但是在网上都很多是pagefilter
有点疑惑,准备下周去问问老大。
然后是装饰页面,它是为了装饰其它页面而存在,style.jsp,
它是放在webRoot/decorators目录下,这个路径是在上面decorators.xml里面定义的。
这里只是测试,所以内容很简单,如下:
<%@ 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>head decorator...</p> <!-- 头部 -->
<decorator:body />
<p>foot decorator...</p><!-- 脚部,可以写一些copyright之类的东西 -->
</body>
</html>
然后就直接运行,只要在webRoot下面有页面,访问即可看到效果。
分享到:
相关推荐
在"**sitemesh入门demo**"中,我们将学习如何设置和使用Sitemesh来创建一个简单的Web应用程序。这个demo是基于博主的**Sitemesh入门和使用笔记**,提供了对应的源码供学习者实践和参考。以下是关于Sitemesh的详细...
sitemesh官方demo cafe.war
在本"siteMesh demo+文档"中,我们将深入探讨SiteMesh的基本概念、安装配置、以及如何在实际项目中应用。 首先,我们来看"siteMesh demo"。这个演示项目展示了SiteMesh的功能和用法。通过运行这个demo,你可以直观...
这个“sitemesh简单demo”是一个使用 Maven 构建的项目,旨在提供一个快速入门的示例,帮助初学者理解并掌握 sitemesh 的基本用法。 在 Web 开发中,sitemesh 通过拦截 HTTP 请求,将用户定义的页面模板(通常称为...
`sitemesh3demo附配置说明`这个主题涉及到的是一个使用Sitemesh3框架的演示项目,其中包含了配置的详细指南。Sitemesh是一个开源的Web应用程序模板引擎和页面装饰框架,它主要用来帮助开发者实现网页布局、样式统一...
这个"siteMesh框架demo"是一个小型示例项目,旨在演示如何在实际开发中集成和使用SiteMesh框架。通过这个Demo,我们可以深入理解SiteMesh的核心功能和工作原理。 SiteMesh的核心功能在于装饰器(Decorator)模式的...
入门的demo...siteMesh与freemarker结合。。 siteMesh与velocity结合。。并且在siteMesh.xml用了不同的装饰器。。每个装饰器都有注释。。可以帮助理解。。请看readme.txt
SiteMesh 是一个开源的网页布局框架,用于Java Web应用程序,其主要目的是解决页面布局和装饰的问题。通过使用Decorator模式,SiteMesh能够将通用的头部、底部、侧边栏等元素统一管理,使得开发者无需在每个单独的...
【sitemesh3-demo】是一个基于Sitemesh3框架的示例项目,旨在展示如何在Web应用程序中有效地实现页面布局和装饰功能。Sitemesh是一个开源的Java Web应用框架,主要用于增强网页的外观和结构,通过定义装饰模板,可以...
在这个"SiteMesh入门示例"中,我们将探讨如何使用 SiteMesh 来实现这些功能。 首先,让我们理解 SiteMesh 的核心概念。SiteMesh 包含了两个主要部分:`Decorator` 和 `Filter`。`Decorator` 是一个 HTML 页面,定义...
在这个"Struts2+Spring2.5+SiteMesh的小DEMO"中,开发者可能已经创建了一个简单的Hello World应用,展示了这三个框架如何协同工作。`helloWorld`可能是这个应用的一个入口点,例如,它可能对应一个Struts2的动作类,...
Sitemesh 是一个开源的网页布局和装饰框架,它用于Java Web应用程序,能够帮助开发者实现页面的统一布局和风格。通过使用Sitemesh,开发者可以将页面的头部、内容区和侧边栏等组件进行分离,然后在不改变各个具体...
**Sitemesh装饰器入门** Sitemesh 是一个开源的 Web 应用程序框架,它主要用来帮助开发者实现页面布局和装饰功能。Sitemesh 的核心概念是“装饰器”,这个概念源自于软件设计模式中的装饰者模式。通过使用 Sitemesh...
**Sitemesh网页组合框架** 是一个开源的Java Web应用程序框架,主要用于网页布局和装饰。它的核心功能是帮助开发者统一网站的外观和感觉,通过自动应用页面模板来增强Web应用程序的界面一致性。在传统的Web开发中,...
通过这个简单的 demo,你可以学习到如何在实际项目中集成和使用 Sitemesh,以提高网站的整体一致性和美观性。同时,Sitemesh 还支持自定义装饰策略、多装饰器应用、动态装饰等功能,可以根据项目需求进行深入研究和...
页面装饰器(Sitemesh)是一种广泛用于Web应用的开源框架,它的主要功能是提供页面布局和装饰功能,使得...通过实际操作和学习提供的`demo`,你可以进一步掌握Sitemesh的使用技巧,从而在自己的开发工作中游刃有余。
Sitemesh是一款强大的Web页面布局和装饰框架,它主要用于帮助开发者实现网站的统一外观和...通过这个简单的入门教程,你可以快速掌握Sitemesh的基本操作,并将其应用到自己的项目中,提升网站的用户体验和设计品质。
### SiteMesh教程及SiteMesh官方文档翻译 #### 使用SiteMesh简化网页布局 SiteMesh是一款用于Web应用程序中的页面布局和装饰的框架。它采用Decorator模式,通过过滤器(filter)拦截请求和响应,将不同的页面组件...
这里,`decorator.html`作为母版页,其中通过`<sitemesh:write>`标签将`demo.html`的内容嵌入进来。 #### 五、添加/WEB-INF/sitemesh3.xml 配置文件 Sitemesh的配置文件位于项目的`/WEB-INF/`目录下,用于定义哪些...