java

位置:IT落伍者 >> java >> 浏览文章

Spring 和struts 整合的三种方式[1]


发布日期:2023年03月10日
 
Spring 和struts 整合的三种方式[1]

使用Spring 的 ActionSupport

使用Spring 的 DelegatingRequestProcessor 类

全权委托

无论用那种方法来整合第一步就是要为struts来装载spring的应用环境 就是在 struts 中加入一个插件

strutsconfigxml中

<plugin className=orgspringframeworkwebstrutsContextLoaderPlugIn>

<setproperty property=contextConfigLocation value=/WEBINF/applicationContextxml/>

</plugin>

spring 的配置文件被作为参数配置进来这样可以省略对webxml 文件中的配置确保你的applicationContextxml 在WEBINF目录下面

使用Spring的ActionSupport

Spring 的ActionSupport 继承至 orgapachestrutsactionAction ActionSupport的子类可以或得 WebApplicationContext类型的全局变量通过getWebApplicationContext()可以获得这个变量

这是一个 servlet 的代码

public class LoginAction extends orgspringframeworkwebstrutsActionSupport {

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 并覆盖了里面的方法

[] [] []

               

上一篇:Spring 和struts 整合的三种方式[2]

下一篇:开源技术 Eclipse使用技巧[2]