struts2 中strut.xml文件中可以配置返回类型,对于type="chain",是转发到另外的action,是不是就是原来action可以传递参数到另外的acition,而不要在后面加个参数。如果是这样的话,那和type="redirect-action"后面加个参数有什么区别。
开发的时候不想代码的耦合度太大,所以想把功能分开在几个action里,碰到这个问题,希望哪位有经验的朋友开导一下

解决方案 »

  1.   

    1.type="redirect-action":
      用于重定向到指定的Action,所有的参数、值栈和请求都会丢失。2.type="chain":
      用于配置多个Action组成一个链或工作流程来处理用户请求,是通过ChainingInterceptor拦截器来完成的,所有的参数、值栈和请求都是保留的。
      

  2.   

    type="chain"可以配置多个Action,麻烦把把代码发下看,那和type="redirect-action"有什么区别
      

  3.   

    1.type="redirect-action":
      用于重定向到指定的Action,所有的参数、值栈和请求都会丢失。
      

  4.   

    把功能写到action中虽然不规范但是也不算错,至于多个action我建议只写一个,一个个的写比较清晰
      

  5.   

    1.type="redirect-action": 
      用于重定向到指定的Action,所有的参数、值栈和请求都会丢失,如果要传递参数需要显示配置。 2.type="chain": 
      用于配置多个Action组成一个链或工作流程来处理用户请求,是通过ChainingInterceptor拦截器来完成的,所有的参数、值栈在下一个action可以直接使用。
      

  6.   

    <result name="success" type="redirectAction">User?u_id=${loginBean.u_id}</result>
    <result name="success" type="redirect">User.action?u_id=${loginBean.u_id}</result>
    chain:action处理完后转发到一个action,请求参数全部丢失,action处理结果不会丢失。
    chain拦截器,处于chain链中的所有action共享一下值栈,每个action把值压入值栈,要用值时从值栈中取
    action name="step1" class="test.Step1Action">  
            <result name="success" type="chain">step2.action</result>  
    </action>  
      
    <action name="step2" class="test.Step2Action">  
            <result name="success">finish.jsp</result>  
    </action> 
    也可以<param name="actionName">step2</param>
      

  7.   

    <action name="DR0001" method="doPost" class="dr0001Action">
        <result type="redirectAction">
            <param name="actionName">DR0003</param>
            <param name="nValue">test</param>
        </result>
    </action>
    <action name="DR0002" method="doPost" class="dr0002Action">
        <result type="chain">
            <param name="actionName">DR0003</param>
        </result>
    </action>
    <action name="DR0003" method="doPost" class="dr0003Action">
        <result>
           /WEB-INF/jsp/debug/struts/rslt/DR0003.jsp
        </result>
    </action>
      

  8.   

    我的意思是说如果使用chain那就不要在struts.xml配置文件中加param吗?可以直接在action直接定义get方法取得吗?
      

  9.   

    type="redirect-action 请求结果好像不会丢失啊!我的第一action都是保持数据库操作,都操作了呀!