在 Struts 2 中使用调度程序结果时未收到操作错误

问题描述 投票:0回答:2

当我在 Struts 2 中使用

dispatcher
结果时,我没有收到操作错误。

在action类中,以下代码用于添加错误消息。

addActionError("Error");
return "Failure";

struts.xml

...
<result name="Failure" type="dispatcher">/ShowError.do</result>
...
<action name="ShowError">
    <result>/jsp/ShowActionErrror.jsp</result>
</action>

ShowActionErrror.jsp

<div class="error"><s:actionerror /></div>

但是,我没有在

ShowActionErrror.jsp
中收到操作错误消息?

jsp error-handling struts2 actionresult xml-configuration
2个回答
4
投票

Dispatcher 是默认的 Struts2 结果类型

它用于执行标准行为,从Action到JSP

执行其他操作需要特殊结果,如Action 到 Action 到 JSP,如

RedirectAction
结果、
Chain
结果(不鼓励)等。请注意,您将丢失
Value Stack
对象(因此ActionErrors 和 ActionMessages)在这种路由过程中

在您的情况下,您应该简单地使用默认的调度程序结果类型:

<result name="Failure" type="dispatcher">/jsp/ShowActionErrror.jsp</result>

或者简单地

<result name="Failure">/jsp/ShowActionErrror.jsp</result>

阅读更多关于结果配置的信息。


2
投票

在 JSP 中使用

dispatcher
结果类型

<result name="Failure" type="dispatcher">/jsp/ShowActionErrror.jsp</result>
© www.soinside.com 2019 - 2024. All rights reserved.