0

可以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。为什么?

4

2 回答 2

1

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

于 2013-04-11T05:02:04.877 回答
1

不,这是不可能的,redirectAction将创建一个新的值堆栈,并创建新的请求和响应实例。

因此,您以前的所有数据都将丢失。传输数据的方法很少,这里很少

  1. 在会话中保存数据并在其他操作中检索它。
  2. 通过查询字符串,这在您的情况下是不可能的。
  3. 使用消息存储拦截器

您可以选择以上任何选项

于 2013-04-11T05:42:26.037 回答