THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
As with many other parts of the framework, an Interceptor is needed to activate the exception mapping functionality. Below is a snippet from struts-default.xml
which has the exception mapping already activated.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
... <interceptors> ... <interceptor name="exception" class="com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor"/> ... </interceptors> <interceptor-stack name="defaultStack"> <interceptor-ref name="exception"/> <interceptor-ref name="alias"/> <interceptor-ref name="servlet-config"/> <interceptor-ref name="prepare"/> <interceptor-ref name="i18n"/> <interceptor-ref name="chain"/> <interceptor-ref name="debugging"/> <interceptor-ref name="profiling"/> <interceptor-ref name="scoped-model-driven"/> <interceptor-ref name="model-driven"/> <interceptor-ref name="fileUpload"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="static-params"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> <interceptor-ref name="validation"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> <interceptor-ref name="workflow"> <param name="excludeMethods">input,back,cancel,browse</param> </interceptor-ref> </interceptor-stack> ... |
...
Below is an example of global and local exception mappings.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<struts> <package name="default"> ... <global-results> <result name="login" type="redirect">/Login.action</result> <result name="Exception">/Exception.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.sql.SQLException" result="SQLException"/> <exception-mapping exception="java.lang.Exception" result="Exception"/> </global-exception-mappings> ... <action name="DataAccess" class="com.company.DataAccess"> <exception-mapping exception="com.company.SecurityException" result="login"/> <result name="SQLException" type="chain">SQLExceptionAction</result> <result>/DataAccess.jsp</result> </action> ... </package> </xwork> |
...
exception | The exception object itself |
---|---|
exceptionStack | The value from the stack trace |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<h2>An unexpected error has occurred</h2> <p> Please report this error to your system administrator or appropriate technical support personnel. Thank you for your cooperation. </p> <hr/> <h3>Error Message</h3> <s:actionerror/> <p> <s:property value="%{exception.message}"/> </p> <hr/> <h3>Technical Details</h3> <p> <s:property value="%{exceptionStack}"/> </p> |
...