我正在尝试使用结果类型redirectAction将请求重定向到struts2中的另一个操作。
<action name="UpdateTrouserMeasurementAction" method="UpdateTrouserMeasurement"
class="com.example.UserDetails.UpdateTrouserMeasurementAction">
<result name="success" type="redirectAction">UserAccountDisplayAction</result>
<result name="error">LoginCheck.jsp</result>
</action>
它正在重定向到 UserAccountDisplayAction ,但在URL中添加了一个额外的上下文名称,如下所示:
http://www.example.com/Example/UserAccountDisplayAction
但它应该是:`http://www.example.com/UserAccountDisplayAction
所以我收到以下错误:
HTTP状态404 - /Example/Example/MyAccount.jsp
以下是我重定向的动作:
<action name="UserAccountDisplayAction" method="execute"
class="com.example.UserDetails.UserAccountDisplayAction">
<result name="success">MyAccount.jsp</result>
<result name="error">LoginCheck.jsp</result>
</action>
我正在使用redirectAction来创建post + redirect + get场景,因为 UpdateTrouserMeasurementAction 会处理一个帖子请求。
以上操作位于相同的包元素中,如下所示:
<package name="securePackage" namespace="/" extends="struts-default">
我该如何解决这个问题?
答案 0 :(得分:0)
您的重定向格式可能不正确。也许它应该如下所示,但确切的语法可能取决于你的struts版本。此外,经过多年使用struts,我真的认为从行动转向行动是不好的做法。如果你想使用来自另一个动作的java代码,你应该改为子程序。
<action name="UpdateTrouserMeasurementAction" method="UpdateTrouserMeasurement"
class="com.example.UserDetails.UpdateTrouserMeasurementAction">
<result name="success" type="redirectAction">
<param name="actionName">UserAccountDisplayAction</param>
</result>
<result name="error">LoginCheck.jsp</result>
</action>