Struts2将参数传递给不同的webapp中的动作

时间:2014-11-26 16:17:25

标签: java struts2 param

我使用Struts 2.3.16.3。我希望webapp 1中的操作将参数传递给webapp 2中的操作。在webapp 1的struts.xml中,我定义了以下结果:

<result name="success" type="redirect">
    <param name="location">http://localhost:8080/Webapp2/index.action</param>
    <param name="testParam">testValue</param>
</result>

我希望我的浏览器会在结果等于“成功”时将我重定向到此网页(webapp2中的页面):

http://localhost:8080/Webapp2/index.action?testParam=testValue

但是,我的浏览器会将我带到:

http://localhost:8080/Webapp2/index.action

完全忽略参数。

如果我将结果更改为将所有内容都放在位置参数中,那么它可以正常工作,但是您可以看到这对于多个参数非常笨重:

<result name="success" type="redirect">
    <param name="location">http://localhost:8080/Webapp2/index.action?testParam=${testValue}</param>
</result>

这正确地将我的浏览器重定向到网址:

   http://localhost:8080/Webapp2/index.action?testParam=testValue

为什么第一种方法不起作用?

1 个答案:

答案 0 :(得分:1)

如果locationhttp:https:mailto:file:ftp:开头,则将其用作使用response.sendRedirect()重定向的最终位置。在这种情况下,使用<param>标记的结果中的参数将被忽略。