我有动作级别和全局异常映射的本地异常映射,其中异常属于同一类型 - 那么无论是全局的还是本地的,哪一个具有高优先级?
<action name="User_save" class="">
<exception-mapping exception="java.sql.SQLException"
result="error"/>
<result name="error">/jsp/Error.jsp</result>
<result>/jsp/Thanks.jsp</result>
</action>
<global-results>
<result name="error">/jsp/Error.jsp</result>
<result name="sqlError">/jsp/SQLError.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.sql.SQLException"
result="error"/>
答案 0 :(得分:1)
当声明异常映射时,Interceptor将在抛出的Exception和声明的Exception之间找到最接近的类继承匹配。 Interceptor将检查适用于动作映射的所有声明的映射,首先是局部映射,然后是全局映射。如果找到匹配项,则处理结果,就像操作已返回一样。
此过程遵循与从Action返回的结果相同的规则。它首先在本地操作映射中查找Result,如果未找到,则查找全局Result。
答案 1 :(得分:0)