sitemesh2作为jsp页装饰器是以java filer形式嵌入jsp项目的,配置好以后,对业务代码基本没有耦合影响,使用方便,中规中矩,一般和Struts2项目结合。
1,webapp的WEB-INF/lib加入必要的库文件,如:
sitemesh-2.4.2.jar
struts2-sitemesh-plugin-2.3.33.jar
2,配置web.xml(与Struts2.3.XX)
<filter> <filter-name>struts-prepare</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class> </filter> <filter> <filter-name>sitemesh</filter-name> <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class> </filter> <filter> <filter-name>struts-execute</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts-prepare</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts-execute</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3,配置decorators.xml(装饰具体的路径)
<?xml version="1.0" encoding="UTF-8"?> <decoratos defaultdir="/jsp"> <decorator name="myDecorator" page="decorator.jsp"> <pattern>/*</pattern> </decorator> <excludes> <pattern>*.html</pattern> <pattern>*.js</pattern> <pattern>*.gif</pattern> <pattern>*.jpg</pattern> <pattern>*.png</pattern> <pattern>*.css</pattern> </excludes> <!-- --> <decorator name="panel" page="/jsp/footer.jsp"></decorator> </decoratos>
4,定义装饰页(模板页)
jsp页面,
引入标签定义:
<%@ taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%@ taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page" %>
在head标签内插入<decorator:head></decorator:head>,以便运行时包含被装饰页的head部分内容,看需要加入<decorator:title></decorator:title>;
在body标签内适当位置插入被装饰页<decorator:body ></decorator:body>,
按需要加入定义的其他页
<page:applyDecorator page="/jsp/footer.jsp" name="panel"></page:applyDecorator>;
sitemesh2的其他标签视需要加入,参考http://wiki.sitemesh.org/wiki/display/sitemesh/Home。
相关推荐
Sitemesh是由一个基于Web页面布局、装饰以及与现存Web应用整合的框架。它能帮助我们在由大 量页面构成的项目中创建一致的页面布局和外观,如一致的导航条,一致的banner,一致的版权,等等。... struts2 就不用说了撒
- **Struts2的Web项目集成**:通过在web.xml中配置FilterDispatcher,以及在struts.xml中定义Action映射和结果,可以快速构建基于Struts2的Web应用。 - **页面导航的定义**:利用struts.xml中的配置,可以灵活地控制...
将Sitemesh的jar包(例如`sitemesh-2.3.jar`)复制到项目的`WEB-INF/lib`目录下。可以通过官方网址下载:[http://www.opensymphony.com/sitemesh/](http://www.opensymphony.com/sitemesh/)。 3. **创建装饰器配置...
2. **页面装饰**:SiteMesh 过滤器会在服务器端对每个请求的页面内容进行装饰,即将页面内容嵌入到对应的装饰模板中。这一步骤可以通过配置文件或注解来指定,指定哪个页面使用哪个装饰模板。 3. **内容与模板的...
SiteMesh提供了一种简洁而有效的方式来管理和装饰Web应用的内容,特别是对于那些需要整合多种技术的大型项目而言,其价值尤为明显。通过合理的配置和实践,我们可以充分利用SiteMesh的优势,提高Web应用的开发效率和...
Sitemesh可以与其他Web框架,如Spring MVC、Struts等无缝集成。通过适配器机制,可以让Sitemesh与这些框架一起工作,提供更强大的页面装饰能力。 **示例项目sitemeshDemo** 提供的压缩包`sitemeshDemo`应该是一个...
下面我们将深入探讨 SiteMesh 的核心概念、工作原理以及如何在实际项目中应用它。 1. **核心概念**: - **布局(Layout)**:布局是 SiteMesh 的核心元素,它定义了一种通用的页面结构,如头部、主体和尾部等部分...
在更复杂的Web应用程序中,Sitemesh可以与Struts、Spring MVC、WebWork等MVC框架集成,提供一致的界面外观,同时保持各业务逻辑层的独立性。这种分层架构有助于提高代码的可读性、可扩展性和团队协作效率。 总之,...
2. **Web.xml配置**: 在web应用的web.xml文件中配置Sitemesh Filter,如下所示: ```xml <filter-name>sitemesh <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class> ...
2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3、接着FilterDispatcher被调用,...
2. **框架辅助**:使用如FreeMarker、Velocity等模板引擎,它们可以在运行时生成静态HTML,或者使用Struts2的StaticContentFilter进行静态化。 3. **自动化工具**:通过一些自动静态化工具,如SiteMesh、JSP2HTML等...
该系统基于SSH框架(Struts2 + Spring + Hibernate)进行开发,并采用了JSP、JavaScript、Sitemesh等技术来构建网站页面。具体来说: 1. **SSH框架**: - **Struts2**:作为MVC(Model-View-Controller)框架的...