使用Struts 2调度程序结果时,操作错误为空

时间:2013-09-03 10:56:22

标签: java jsp struts2 error-handling actionresult

当我在Struts 2中使用dispatcher结果时,我没有收到操作错误。

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

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

在Struts配置中:

...
<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没有收到操作错误消息?

2 个答案:

答案 0 :(得分:4)

Dispatcher是默认的Struts2 Result Type

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

执行其他操作需要特殊结果,例如 Action to Action to JSP ,例如RedirectAction结果,Chain结果(不鼓励),请注意,您将丢失Value Stack个对象(因此ActionErrors和ActionMessages)during this kind of routing

在您的情况下,您应该只使用默认的Dispatcher Result Type:

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

或只是

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

详细了解Result Configuration

答案 1 :(得分:2)

对JSP使用dispatcher结果类型

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