关于struts.xml中的struts2 redirectAction结果

时间:2013-04-11 04:54:33

标签: struts2

Struts2 redirectAction result可以转移像Person这样的引用类型。

我的代码

    <action name="saveAdAction" class="saveAdAction">
        <result name="success" type="redirectAction">
            <param name="actionName">getAdAction</param>
            <param name="namespace">/</param>
            <param name="person">${person}</param>
        </result>           
    </action>

    <action name="getAdAction" class="getAdAction">     
        <result name="success">/ad/ad.jsp</result>
        <result name="input">/index.jsp</result>
    </action>

此人是saveAdAction和getAdAction中的bean。

当我使用saveAdAction时,网页将跳转到index.jsp。为什么呢?

2 个答案:

答案 0 :(得分:1)

不,重定向只能传输请求参数,就像任何常规servlet重定向一样。因此,您必须将person的每个属性作为请求参数传递,或者使用您可以在下一个操作中查找的键将此人置于会话中。

答案 1 :(得分:1)

不,这是不可能的,redirectAction将创建一个新的值堆栈,并创建新的Request和Response实例。

因此您之前的所有数据都将丢失。您可以通过多种方式传输数据,而这里很少

  1. 在会话中保存数据并以其他操作检索。
  2. 通过查询字符串,这在您的情况下是不可能的。
  3. 使用message-store-interceptor
  4. 您可以选择以上任何选项