使用Spring 的 ActionSupport
使用Spring 的 DelegatingRequestProcessor 类
全权委托
无论用那种方法来整合第一步就是要为struts来装载spring的应用环境 就是在 struts 中加入一个插件
strutsconfigxml中
<plug
in className=
org
springframework
web
struts
ContextLoaderPlugIn
>
<setproperty property=contextConfigLocation value=/WEBINF/applicationContextxml/>
</plugin>
spring 的配置文件被作为参数配置进来这样可以省略对webxml 文件中的配置确保你的applicationContextxml 在WEBINF目录下面
使用Spring的ActionSupport
Spring 的ActionSupport 继承至 orgapachestrutsactionAction ActionSupport的子类可以或得 WebApplicationContext类型的全局变量通过getWebApplicationContext()可以获得这个变量
这是一个 servlet 的代码
public class LoginAction extends org
springframework
web
struts
ActionSupport {
public ActionForward execute(ActionMapping mapping ActionForm form
HttpServletRequest request HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Autogenerated method stub
//获得 WebApplicationContext 对象
WebApplicationContext ctx = thisgetWebApplicationContext();
LoginDao dao = (LoginDao) ctxgetBean(loginDao);
User u = new User();
usetName(loginFormgetName());
usetPwd(loginFormgetPwd());
if(daocheckLogin(u)){
return mappingfindForward(success);
}else{
return mappingfindForward(error);
}
}
}
applicationContextxml 中的配置
<beans>
<bean id=loginDao class=comcaodaoLoginDao/>
</beans>
这中配置方式同直接在webxml文件配置差别不大注意Action继承自 orgspringframeworkwebstrutsActionSupport 使得struts和spring耦合在一起
但实现了表示层和业务逻辑层的解耦(LoginDao dao = (LoginDao) ctxgetBean(loginDao))
使用Spring 的 DelegatingRequestProcessor 类
DelegatingRequestProcessor 继承自 orgapachestrutsactionRequestProcessor 并覆盖了里面的方法
[] [] []