Spring整合Struts策略----ActionSupport
2008-10-19 19:57
211 查看
Spring提供与Struts的无缝整合。Spring与Struts的整合大体上可分为以下两种策略: 0|D!:GLY<l
1. 让Spring Ioc容器管理Struts的Action,Struts采用ContextLoaderPlugin创建Spring的ApplicationContext实例。 G<S^h
2. 采用Spring的ActionSupport类的子类。 :r@|^+hyn
现把第二种总结如下: )Tz/.i@$
采用Spring的ActionSupport类的子类,该支持类具有getWebApplicationContext()方法,该方法可以访问Spring的ApplicationContext。 HzI +
Spring扩展Struts的标准Action类,Spring的Action在Struts的Action后加上Support,Spring的Action提供了如下4种: W%x9erm&
Spring的ActionSupport类及其子类 Struts的Action类及其子类 / qw,P$
1. ActionSupport Action(基本的Action,每次只能完成一个Action功能) n=q em]HS
2. DispatchActionSupport DispatchAction(能同时完成多个Action功能的Action) ]~B**f 2V
3. LookupDispatchActionSupport LookupDispatchAction(DispatchAction的子类,根据按钮的key,控制转发给action的方法) |5 ALJ6/
4. MappingDispatchActionSupport MappingDispatchAction(DispatchAction的子类,一个action可映射出多个Action地址) b, xP{5z
MJo*`7fPI
这四种Spring扩展的Action类,与struts的Action是一一对应的,只是多了一个方法getWebApplicationContext(),该方法用于获取一个spring容器。 ki Q!Z_
5YP,FYQ+
如下例子所示: aW&pM:2
y`%3ji%#P
//新的业务控制器,继承spring的ActionSupport 2=To_>U<
public class LoginAction extends ActionSupport <`CpO<&U[
{ 0$h(MNDG^
//必须重写该核心方法,该方法ActionForm将表单的请求参数封装成值对象 ~m!zP98bD
public ActionForward execute(ActionMapping mapping, Tr:O{@qZ
ActionForm form, J8E"KtdPF
javax.servlet.http.HttpServletRequest request, D9,|Yp~'
javax.servlet.http.HttpServletResponse response) N?*6mP PXM
throws Exception D}!rnaR
{ m/8b'nGO6
//form由ActionServlet转发请求时创建,包装了所有的请求参数 pg.{MD%9
UserForm userForm = (UserForm)form; *^t3;
//分别获取user和pass参数 dB]b)/%
String user = userForm.getUser(); @ [ss[
String pass = userForm.getPass(); `)z N(FLD
//获取ApplicationContext 实例 :-{7]ze
ApplicationContext ac = getWebApplicationContext(); EjVwR#
//获取业务逻辑组件us 4/k33d5n6
UserService us = (UserService)ac.getBean("userService"); #04gD
//调用us的userValidate方法验证用户名和密码,如果通过,则返回success |c^h!
if (us.userValidate(user, pass)) 5_Lz" m$}c
{ a99j57?
return mapping.findForward("success"); ;#'w-*CJ
} DZ}ovM!Wf
//否则返回failure ,2@/M}$b/
return mapping.findForward("failure"); 4+PW Avr
} ($u!}E; Y
} #>[_, M)"
1. 让Spring Ioc容器管理Struts的Action,Struts采用ContextLoaderPlugin创建Spring的ApplicationContext实例。 G<S^h
2. 采用Spring的ActionSupport类的子类。 :r@|^+hyn
现把第二种总结如下: )Tz/.i@$
采用Spring的ActionSupport类的子类,该支持类具有getWebApplicationContext()方法,该方法可以访问Spring的ApplicationContext。 HzI +
Spring扩展Struts的标准Action类,Spring的Action在Struts的Action后加上Support,Spring的Action提供了如下4种: W%x9erm&
Spring的ActionSupport类及其子类 Struts的Action类及其子类 / qw,P$
1. ActionSupport Action(基本的Action,每次只能完成一个Action功能) n=q em]HS
2. DispatchActionSupport DispatchAction(能同时完成多个Action功能的Action) ]~B**f 2V
3. LookupDispatchActionSupport LookupDispatchAction(DispatchAction的子类,根据按钮的key,控制转发给action的方法) |5 ALJ6/
4. MappingDispatchActionSupport MappingDispatchAction(DispatchAction的子类,一个action可映射出多个Action地址) b, xP{5z
MJo*`7fPI
这四种Spring扩展的Action类,与struts的Action是一一对应的,只是多了一个方法getWebApplicationContext(),该方法用于获取一个spring容器。 ki Q!Z_
5YP,FYQ+
如下例子所示: aW&pM:2
y`%3ji%#P
//新的业务控制器,继承spring的ActionSupport 2=To_>U<
public class LoginAction extends ActionSupport <`CpO<&U[
{ 0$h(MNDG^
//必须重写该核心方法,该方法ActionForm将表单的请求参数封装成值对象 ~m!zP98bD
public ActionForward execute(ActionMapping mapping, Tr:O{@qZ
ActionForm form, J8E"KtdPF
javax.servlet.http.HttpServletRequest request, D9,|Yp~'
javax.servlet.http.HttpServletResponse response) N?*6mP PXM
throws Exception D}!rnaR
{ m/8b'nGO6
//form由ActionServlet转发请求时创建,包装了所有的请求参数 pg.{MD%9
UserForm userForm = (UserForm)form; *^t3;
//分别获取user和pass参数 dB]b)/%
String user = userForm.getUser(); @ [ss[
String pass = userForm.getPass(); `)z N(FLD
//获取ApplicationContext 实例 :-{7]ze
ApplicationContext ac = getWebApplicationContext(); EjVwR#
//获取业务逻辑组件us 4/k33d5n6
UserService us = (UserService)ac.getBean("userService"); #04gD
//调用us的userValidate方法验证用户名和密码,如果通过,则返回success |c^h!
if (us.userValidate(user, pass)) 5_Lz" m$}c
{ a99j57?
return mapping.findForward("success"); ;#'w-*CJ
} DZ}ovM!Wf
//否则返回failure ,2@/M}$b/
return mapping.findForward("failure"); 4+PW Avr
} ($u!}E; Y
} #>[_, M)"
相关文章推荐
- Spring与Struts的整合之一:使用ActionSupport代替Action
- Spring与Struts的整合_使用ActionSupport代替Action
- 一种实用的Struts+Spring整合策略
- ssh框架整合---- spring 4.0 + struts 2.3.16 + maven ss整合超简单实例
- struts-2.3.1+spring-framework-3.2.2+hibernate-4.1.1整合历程<第三部分>(详解)
- Struts + Spring +ibatis 整合开发步骤
- Struts整合spring方法(二)
- Struts-2 + Spring-2.5 + Hibernate-3 整合关键点
- spring2.5和struts1.3.8整合
- 用MyEclipse整合Spring和struts报错
- 整合struts2+hibernate3+spring2.5
- spring环境搭建以及和struts整合
- Spring_Struts_Hibernate框架整合
- Spring对Struts的整合
- struts整合spring,action中用spring注入时,hibernateTemplate空指针
- Struts2+Spring2.5+Hibernate3.5的整合开发
- struts2.2.1用注解spring用XML整合,两框架整合问题!
- Struts+spring+mybatis框架整合
- struts,spring,mybatis框架整合
- Struts Spring Ibatis整合框架搭建配置文档