j2ee项目实训struts框架技术——第10章整合struts和其他框架技术第1部分内容摘要:
程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 6/13 页 务 组 件 类 的 对 象 实 例 , 一 般 是 采 用 WebApplicationContextUtils 工 具 类 从ServletContext 环境对象中获得 WebApplicationContext;当然,更简单和方便的方式便是 继承 Spring 框架的 ActionSupport 类。 因为,在 ActionSupport 类中提供了更加便利的 getWebApplicationContext()方法。 具体的功能实现代码请见 【例 103】所示,同时也还 应该 注意在 Spring框架中,已经针对 Struts 框架中 不同的 Action 类提供了对应不同的 ActionSupport 类的支持,以便能够更好地满足 Struts 框架的特别应用要求。 Spring 框架包含了所有标准 Struts 框架中的各种形式 的 Action 子类,这些子类的名称是在类名末尾处附加了 Support,如下面所示的各种形式的 ActionSupport 子类及对应的 Struts 框架中的 Action 子类。 1) ActionSupport 是对 Action 类的继承 2) DispatchActionSupport 是对 DispatchAction 类的继承 3) LookupDispatchActionSupport 是对 LookupDispatchAction 类的继承 4) MappingDispatchActionSupport 是对 MappingDispatchAction类的继承 如何在 Struts 框 的其它组件类中获得 WebApplicationContext 对象 在应用系统的开发中,可能还会遇到需要在 Struts 框 架 的其它组件类特别是在业务组件类和 自定义的标签库 中获得 WebApplicationContext 对象的要求。 通过查看 类 的源代码,发现 ContextLoaderPlugIn类是把所获得的 WebApplicationContext 对象保存在 ServletContext 环境对象中。 因 此 , 只 要 能 够 在 Web 应 用 中 获 得 ServletContext 对 象 也 就 能 获 得WebApplicationContext 对象。 下面为实现的代码示例: ApplicationContext applicationContext=WebApplicationContextUtils. getWebApplicationContext(())。 采用覆盖 RequestProcessor 的方法来实现整合 采用本节将要介绍的“ 采用覆盖 RequestProcessor 的方法来实现整合 ”方法的确比前一节中所介绍的“ 使用 ActionSupport类来整合 Struts和 Spring”方法要优越,因为 Struts框架中的各个 Action 组件类不再需要继承 Spring 框架中的 API 类,能够减少紧密藕合的杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 7/13 页 关系;同时由于 Action 类也能够被 Spring IoC 容器进行管理,因此可以将 Spring AOP 技术应用到 Struts 框架中系统的表示层组件中。 但是这种整合方式,也仍然存在着一些问题,比如如果应用系统需要使用不同的 RequestProcessor 组件类以产 生各种特殊的拦截效果,则需要调整 Spring 框架中的 DelegatingRequestProcessor 类的配置。 该整合方式的实现原理 为了能够将 Spring 框架 API 从 Struts 框架的 Action 类中分离出,从而达到解藕 Struts框架对 Spring 框架的紧密依赖的设计目标。 为此可以应用在 Spring 框架中所提供的 类 来 覆 盖 Struts 框架中的RequestProcessor 请求处理器组件类。 实现此 设计目标 的主要方法 1)在 文件中增加 controller配置标签 利用 controller标签配置定义出 DelegatingRequestProcessor 类( controller processorClass=/),该 请求处理器组件类 作为实际的 Struts 框 架 中 的 RequestProcessor 类 的 代 理 类 , 并 由 该DelegatingRequestProcessor 类首先获得 Spring 的 IoC 的 WebApplicationContext 组件对象,然后再正常地调用 Struts 框架中的 RequestProcessor 类以完成实际的请求处理功能。 当然要注意的是, 如果在基于 Struts 框架技术实现的应用系统中使用了 Tiles 框架 技术 ,则需要将 controller配置 标签 中的 DelegatingRequestProcessor 类改变 为 支持Tiles 框架的 DelegatingTilesRequestProcessor 类。 此时的 controller配置标签应该设计 为: controller processorClass= / 2)在 Spring IoC 的 XML 文件中声明 Action 类的对象实例 在 Spring IoC 的 XML 配置文件中,将系统中的各个 Action 类(如本示例中 的杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 8/13 页 UserLoginAction 类)作为一个普通的 JavaBean 组件进行注册声明,并将业务组件对象以属性注入的方式注入。 在【例 104 】 中 定 义 了 一 个 名 称 为 userLoginBusiness 的 业 务 组 件 类UserLoginBusiness 的对象实例和一个名称为“ /userLoginAction”的 UserLoginAction类的 对象实例。 并将 userLoginBusiness 业务组件类以属性注入的方式注入到UserLoginAction 类中。 【例 104】 在 Spring IoC 的 XML 文件中声明 Action 类的对象实例 ?xml v。j2ee项目实训struts框架技术——第10章整合struts和其他框架技术第1部分
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。