我使用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
为什么第一种方法不起作用?
答案 0 :(得分:1)
如果location
以http:
,https:
,mailto:
,file:
,ftp:
开头,则将其用作使用response.sendRedirect()
重定向的最终位置。在这种情况下,使用<param>
标记的结果中的参数将被忽略。