Я немного запутался в том, как обращаться с ошибкой в 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 (но я не поймать его там) так, наконец, приходит контроль to com.myErrorClass. Я МОЖЕТ записывать ошибки в этом классе, но мой вопрос заключается в том, доступно ли сообщение журнала ... поскольку оно было изначально выбрано в reports.ReportSelection?