0

アクションレベルのローカル例外マッピングと、例外が同じタイプのグローバル例外マッピングがあります。グローバル例外が実行されるかローカル例外が実行されるかにかかわらず、どちらが優先されますか?

<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"/>

4

2 に答える 2

1

例外マッピングを宣言すると、Interceptor は、スローされた Exception と宣言された Exception の間で最も近いクラス継承の一致を見つけます。Interceptor は、アクション マッピングに適用可能なすべての宣言されたマッピングを調べます。最初はローカル マッピング、次にグローバル マッピングです。一致が見つかった場合、Action によって返されたかのように Result が処理されます。

このプロセスは、アクションから返される結果と同じ規則に従います。最初にローカル アクション マッピングで Result を検索し、見つからない場合はグローバル Result を検索します。

于 2012-05-15T07:11:21.743 に答える
0

アクションから SQLException をスローすると、答えが得られます。

または、次のように記載されているドキュメントをお読みください。

Interceptor は、アクション マッピングに適用可能なすべての宣言されたマッピングを調べます。最初はローカル マッピング、次にグローバル マッピングです。

于 2012-05-15T07:14:39.667 に答える