我对如何在Struts2中处理错误有点困惑。如果发生错误,我希望将一次中央页面作为用户定向的地方。此外,当发生错误时,我希望记录它,因为我使用的是log4j,所以我将它记录为log.error(e.getMessage(), e);
Struts2中的错误处理
但是,在我的动作类中,如果我发现错误(将所有代码放入try/catch中)那么中央/通用错误页面不会出现。所以我决定不要捕捉错误,如果我不抓住错误,那么中央错误页面出现。但是现在我怎么把错误消息/ stacktrack放入日志?
阅读本link 我做了以下后:
<global-results>
<result name="Exception" type="chain">
<param name="actionName">ErrorPage</param>
<param name="namespace">/error</param>
</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="Exception"/>
</global-exception-mappings>
<action name="selectionPage" class="reports.ReportSelection">
<result>/reports/SelectionPage.jsp</result>
</action>
</package>
<package name="secure" namespace="/error">
<action name="ErrorPage" class="com.myErrorClass">
<result>errorpage.jsp</result>
</action>
</package>
根据上面的配置,原先的错误是在reports.ReportSelection抛出(但我没有抓住它有)所以最后的控制来com.myErrorClass。我可以在这个类中记录错误,但我的问题是,日志消息是否仍然可用...因为它最初是在reports.ReportSelection中抛出的?