Struts2中action之间的跳转问题

来源:互联网 发布:安装mac终端改时间date 编辑:程序博客网 时间:2024/04/29 20:19

 struts2中result类型有chain、dispatcher、redirect、redirectAction。

 1)dispatcher类型:

              默认跳转类型,用于返回一个视图资源(如JSP)。用于页面转发,页面跳转过程是同一个过程,Action中的数据一直保存。

如<result  name=“success”>/main.jsp</result>与   <result name=“success” type="dispatcher">/main.jsp</result>是相同效果。

2)redirect类型:

                用于重定向到一个页面、action、网址。把一个http返回码(SUCCESS)以及返回的页面位置重新发给服务器,由web服务器产生一个新的HTTP请求,产生新的线程,保存在原Action中的数据无法访问。如果需要访问,则在action中带参数,参数为一个OGNL表达式,此时该变量必须在前action中有set/get方法,使用${变量名}即可访问到该数据。

      如:<result name="topic" type="redirect">/deleteuser.action?topicId=${topicId}</result>

3)redirectAction类型:

      与redirect类型用法相同。

      <result name="topic" type="redirectAction"> 
                <param name="actionName">findTopics</param> //重定向的action名
                <param name="topicId">${topicId}</param> //需要传递的参数

                <param name="namespace">重定向Action所在的名字空间</param>//若两个action不在同一个package下,需要配置该参数
      </result>

4)chain类型:

            用于把相关的几个action连接起来,共同完成一个功能。处于chain中的action属于同一个http请求,共享一个ActionContext。

        <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>

  若action不在同一个package下,需要配置命名空间这个参数。如下

       

  • <package name="resultType" namespace="/r" extends="struts-default">
  • <action name="r1">
  • <result type="chain">
  • <param name="actionName">r2</param>
  • <param name="namespace">/pp</param>
  • <param name="method">method123</param>
  • </result>
  • </action>
  • </package>
  • <package name="paramsRedirect" namespace="/pp" extends="struts-default">
  • <action name="r2">
  • <result>/1.jsp</result>
  • </action>

    5)plaintextj 结果类型:

               用于直接在页面上显示源代码

    Xml代码:

    <result name="err" type="plaintext"> 
    <param name="location">具体的位置</param> 
    <param name="charSet">字符规范(如GBK)</param> 
    </result>

               


         

  • 1 0