spring+hibernate+struts 整合的三种方法,我只用第三种可以。

一.用spring的DelegatingRequestProcessor替换struts的RequestProcessor.

1)不要在web.xml中设置ApplicationContext的自动加载,在struts-config.xml中通plug-in设置.


   

2)在struts-config.xml中设置RequestProcessor的替换类.

3)不要在struts-config.xml中的元素中设置action的type属性.


    validate="true" scope="request">
    

4)在applicationContext.xml或其他spring bean配置文件中设置由DelegatingRequestProcessor转发的bean,这个bean就是Action类.


    
 

 

 二.使用DelegatingActionProxy,此种方法是在action中再把请求转发给定义在applicationContext.xml中的Action.

1)同第一种方法的1).

2)如果试了第一种方法,去掉struts-config.xml中的

元素.

3)需要在struts-config.xml中定义action的type="org.springframework.web.struts.DelegatingActionProxy".即第一种方法的3)中加入type属性.

    scope="request" type="org.springframework.web.struts.DelegatingActionProxy">
    
   

4)同第一种方法的4).

 

三.使用Spring的ActionSupport .

Spring 的ActionSupport 继承至org.apache.struts.action.Action

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;
            //获得  WebApplicationContext  对象
        WebApplicationContext ctx = this.getWebApplicationContext();
            LoginDao dao = (LoginDao) ctx.getBean("loginDao");
            User u = new User();
            u.setName(loginForm.getName());
            u.setPwd(loginForm.getPwd());
            if(dao.checkLogin(u)){
            	return mapping.findForward("success");
            }else{
           	 return  mapping.findForward("error");
            }
            }
            }
            applicationContext.xml 中的配置
            <beans>
            	<bean id="loginDao" class="com.cao.dao.LoginDao"/>
            </beans>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/659894/viewspace-559931/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/659894/viewspace-559931/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值