你能用POST代替GET进行struts2动作重定向吗?

时间:2010-05-04 21:10:15

标签: post redirect struts2 struts action

<action name="actionA" class="com.company.Someaction">
 <result name="success" type="redirect-action">
  <param name="actionName">OtherActionparam>
  <param name="paramA">${someParams}</param>
  <param name="paramB">${someParams}</param>
  <param name="aBoatLoadOfOtherParams">${aBoatLoadOfOtherParams}</param>
 </result>
</action>

在上面的动作地图中,我将从SomeAction重定向到OtherAction。我遇到了问题,因为不幸的是我需要在两个操作之间传递大量数据。 IE7只允许GET请求像2k一样,所以当响应调用另一个动作的get请求时,我刚刚超过该限制就会爆炸。

我是否可以设置此重定向,最终将POST调用到其他操作?

1 个答案:

答案 0 :(得分:6)

正如docs所述:

  

传递数据[重定向后]的唯一方法是通过   会话或web参数(url?name = value)[即GET请求的查询字符串]

action chaining可能是一个案例?我不确定,通常不推荐,但看起来你的情况很不寻常,所以看看可能会付出代价。

在这种情况下,我们并没有真正进行重定向,即我们不会回到客户端,而是将所有内容保留在服务器中。据说,然后,再次执行完整的拦截器堆栈 - 发布的数据应该影响新的操作,人们希望......