在Struts2中使用SiteMesh的时候,SiteMesh是以Struts2插件的形式出现的。
单独使用SiteMesh需要做好多事情:准备资源、引用过滤器、准备模板页面、准备被装饰页面、结合模板页面和被装饰页面。
在整合Struts2与SiteMesh的时候,准备模板页面和准备被装饰页面基本上没有变化,这里就不过多叙述了。接下来从其他几个方面,包括:准备资源、引用过滤器、结合模板页面和被装饰页面,来继续学习。
20.3.1准备资源
这里的准备资源和单独使用SiteMesh稍有不同,接下来把需要的东西一一拷贝到我们学习Struts2的Web项目上去:
- SiteMesh的jar包:把sitemesh-blank\WEB-INF\lib\sitemesh-2.4.1.jar拷贝到Web工程的构建路径下,WebContent\WEB-INF\lib包下面。
- SiteMesh插件:把struts-2.1.8.1\lib\struts2-sitemesh-plugin-2.1.8.1.jar拷贝到Web工程的构建路径下,WebContent\WEB-INF\lib包下面。
- SiteMesh的自定义标签:把sitemesh-blank\WEB-INF\lib包下的所有tld文件拷贝到Web工程的WEB-INF文件夹下。注意,前面单独使用SiteMesh的时候,是把tld文件拷贝到WEB-INF\lib文件夹下的。
- 模板页面和被装饰页面的结合:把sitemesh-blank\WEB-INF\decorators.xml拷贝到Web工程的WEB-INF文件夹下。
20.3.2引用过滤器
ings��-i�� �,� amily:Wingdings'>Ø sitemesh-blank\WEB-INF\ decorators.xml:定义模板页面和被装饰页面如何结合。
20.2.2拷贝资源
引用SiteMesh的过滤器本身和前面示例做的差不多,就是把相关的过滤器的配置,拷贝到web.xml中,但要注意过滤器的关系:
- FilterDispatcher一定要有,通常出现在最后。
- 如果出现了SiteMesh这种过滤器,需要在SiteMesh之前加上ActionContextCleanUp过滤器。
所以,不但要引用SiteMesh过滤器,还要在它之前引用Struts2的ActionContextCleanUp过滤器,以<filter-mapping>元素出现的顺序为准,应该顺序配置ActionContextCleanUp、SiteMesh、FilterDispatcher这几个过滤器,示例代码如下:
java代码:
- <filter>
- <filter-name>Struts2-action-cleanup</filter-name>
- <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>Struts2-action-cleanup</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <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>
- <filter>
- <filter-name>Struts2</filter-name>
- <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>Struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
20.3.3结合模板页面和被装饰页面
模板页面和被装饰页面基本上没有变化,只是模板页面引用SiteMesh的tld文件的路径,原来是“WEB-INF\lib\sitemesh-decorator.tld”,现在应该去掉lib,修改成“WEB-INF\sitemesh-decorator.tld”。
现在要使用Struts2的Action,先来准备一个简单的Action,没有什么功能,只是跳转到后继的jsp。示例代码如下:
java代码:
- public class SiteMeshAction extends ActionSupport {
- public String execute() throws Exception {
- return SUCCESS;
- }
- }
接下来到struts.xml中配置这个Action,示例代码如下:
java代码:
- <package name="helloworld" extends="struts-default">
- <action name="sitemeshAction" class="cn.javass.sitemesh.SiteMeshAction">
- <result>/index.jsp</result>
- lt;/action>
- </package>
decorators.xml文件也不用变化,因为原来配置的装饰模式就是“/*”,意思是当前web应用中所有的URL指向的页面都会受到装配。
运行测试一下,URL为: http://localhost:9080/helloworld/sitemeshAction.action,会得到与单独使用SiteMesh一样的结果,这样说明Struts2整合SiteMesh成功。
私塾在线网站原创《研磨struts2》系列
转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4180.html】
欢迎访问http://sishuok.com获取更多内容
分享到:
相关推荐
将Struts2与SiteMesh整合,可以实现更加统一和规范化的网站外观,并减少重复代码。 整合Struts2和SiteMesh主要涉及以下几个步骤: 1. **添加依赖**:首先,在项目中引入SiteMesh的jar包。如果使用的是Maven,可以...
通过整合Struts2与SiteMesh,开发者可以在保持Struts2框架的灵活性的同时,利用SiteMesh实现一致且美观的页面布局设计。 #### 配置基础 要使Struts2与SiteMesh协同工作,首先需要确保项目中包含了以下三个库文件:...
Struts2、Spring2.5 和 SiteMesh 是Java Web开发中的三个重要框架,它们共同构建了一个强大且灵活的Web应用程序架构。在这个小DEMO中,我们将深入探讨这三个框架的集成和工作原理。 **Struts2** 是一个基于MVC...
`struts2-sitemesh-plugin-2.2.1.1.jar`是Struts2框架与Sitemesh集成的插件,使得Struts2应用能够利用Sitemesh的功能来美化和规范化页面布局。 **Struts2框架** Struts2的核心功能包括动作映射、结果处理、数据绑定...
要将Struts2和Sitemesh整合,我们需要两个关键的组件:Sitemesh框架本身(在这个例子中是版本2.4.2)和Struts2的Sitemesh插件(版本2.1.8)。这两个组件的集成使得Struts2能够自动将Sitemesh应用于其返回的页面,...
第10章 Struts 2的标签库,第11章 Struts 2的Ajax支持,第12章 使用FreeMarker充当表现层,第13章 整合Spring,第14章 整合JSF,第15章 整合SiteMesh,第16章 整合JasperReports,第17章 整合JFreeChart,第18章 ...
**Struts2与Sitemesh集成** 将Struts2和Sitemesh集成,可以充分利用两者的优点,创建既有良好结构又美观的Web应用。集成过程主要包括以下步骤: 1. 添加Sitemesh的依赖到项目中,通常在Maven的pom.xml文件中添加...
struts2-2拦截器与SiteMeshstruts
struts2-sitemesh-plugin-2.0.8.jar
struts2-sitemesh-plugin-2.1.6.jar
而Struts2 SiteMesh 插件则使得整合 SiteMesh 和 Struts2 框架变得更加方便,让开发者可以充分利用 SiteMesh 的功能来提升用户体验。 首先,我们需要理解 Struts2 是一个基于 Model-View-Controller(MVC)设计模式...
将Struts2.0与Sitemesh整合,可以让Struts2处理业务逻辑,而Sitemesh负责页面的装饰和布局。这样,开发者可以专注于业务代码编写,而无需关心页面的样式细节。通常,整合步骤包括: 1. **添加依赖**:在项目中引入...
在源码中,可以看到Sitemesh配置和过滤器的实现,以及如何与Struts2整合,确保每个Action的结果都能被正确装饰。 3. **FreeMarker模板引擎**:FreeMarker是一个基于模板的语言,它与Java代码分离,使得视图层更加...
Struts2+Spring+Hibernate+sitemesh做的一个在线音乐站点写的一个在线音乐 的站点.功能实现的相对比较粗糙(如歌曲列表没考虑分页什么的),另外只能使用IE(使用了ActiveX 控件播放音乐的).
【Struts2+Spring+Hibernate 整合应用】 在Java Web开发中,Struts2、Spring和Hibernate是三个非常重要的开源框架。它们各自解决了不同层面的问题,而将它们整合在一起可以构建出高效、灵活和可维护的Web应用程序。...
这些文件可以作为学习和实践Freemarker与Sitemesh整合的起点,帮助开发者理解如何在实际项目中应用这两种技术。 通过这样的整合,开发者可以利用Freemarker的强大模板语言处理动态内容,同时借助Sitemesh保持页面的...
spring-boot-sitemesh 源码整合
struts框架与sitemesh框架整合的插件,在java web开发中可以制作模板页,使自己做的网站看起来更专业
在SSH2集成中,Sitemesh可以用来装饰Struts2的Action结果页面,确保每个页面都有统一的头部、底部和侧边栏等元素。 **Spring框架**: Spring的核心是IoC(Inversion of Control,控制反转)和AOP(Aspect-Oriented ...