收藏私塾在线
 

欢迎您来到私塾在线网!   

请登录! 

免费注册 


struts2的笔记
状态: 离线
人气:595879
访问用户量:851
笔记经验:
总积分:567
级别:普通会员
搜索本笔记
ta的交流分类
ta的交流主题贴(5)
ta的所有交流贴(5)
ta的全部笔记
全部笔记(89)
未分类笔记(3)
研磨struts2(86)
存档
2012-04(85)
2012-03(4)

2012-04-25 10:23:00
《研磨struts2》第二十章 整合SiteMesh 之 20.3 整合Struts2与SiteMesh
浏览(6571)|评论(0)   交流分类:Java|笔记分类: 研磨struts2

在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>
		</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获取更多内容

相关笔记推荐
精品视频课程推荐

Java数据结构和算法精讲版
本课程专注于数据结构和算法的内容,使用Java来进行代码示例,不空洞的讲解概念和理论,重点放在代码的实现和示例上。 从零开始、全面系统、成体系的讲解数据结构和基本算法,循序渐进的讲述构建软件系统所常见的数据结构和算法。

ssh+jbpm项目(某集团OA)视频教程
达到能综合使用Struts2+Spring3+Hibernate3+Jbpm4来进行实际项目开发的能力。 包括:ssh和jbpm的整合;数据字典;通用DAO(Spring+Hibernate+泛型+反射+SpEL+模板方法模式);自动生成UUID的加强版;分层开发、SSH联合的基本开发;翻页的taglib;示范真实值和表现值,数据参照的实现;文件上传下载;主子表操;登录验证码;登录控制的拦截器

Ajax+JSON基础实战视频教程
数据校验、Javascript模拟多线程、下拉列表联动、操作XML、AJAX结合JSON的操作、Json-lib的使用

struts2防重复提交视频教程
深入浅出的讲解在Struts2开发中,如何防止页面的重复提交

深入浅出学Spring Web MVC视频教程
系统、完整的学习Spring Web MVC开发的知识。包括:Spring Web MVC入门;理解DispatcherServlet;注解式控制器开发详解;数据类型转换;数据格式化;数据验证; 拦截器;对Ajax的支持;文件上传下载;表单标签等内容;最后以一个综合的CRUD带翻页的应用示例来综合所学的知识

浏览(6571)|评论(0)   交流分类:Java|笔记分类: 研磨struts2

评论(0)
请登录后评论 登录

关于我们 | 联系我们 | 用户协议 | 私塾在线服务协议 | 版权声明 | 隐私保护

版权所有 Copyright(C)2009-2012 私塾在线学习网