1

私はこれらのテクノロジに不慣れで、次のフレームワークを使用してアプリケーションを開発しています。

  • ストラット 2
  • 春 3

すべてのビジネス ロジックを Spring で実装しているため、例外が発生した場合にカスタム メッセージをエンド ユーザーに表示します。

これらのテクノロジで例外処理機能を開発する方法を教えてください。

4

2 に答える 2

1

私の理解によると、最良のアプローチは、ビジネスレイヤーに対していくつかの定義済みの例外を定義し、これらの例外をアクションクラスにスローすることです。

S2 は、これらの例外を処理してユーザーに表示する方法をいくつか提供します。

グローバル例外処理

Struts 2 フレームワークを使用すると、フレームワークがキャッチされなかった例外を処理する方法を struts.xml で指定できます。処理ロジックは、すべてのアクション (グローバル例外処理) または特定のアクションに適用できます。まず、グローバル例外処理を有効にする方法について説明しましょう。

 <global-exception-mappings>
    <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" result="securityerror" />
     <exception-mapping exception="java.lang.Exception" result="error" />
   </global-exception-mappings>

  <global-results>
        <result name="securityerror">/securityerror.jsp</result>
    <result name="error">/error.jsp</result>
   </global-results>

細かいレベルの制御が必要な場合でも、アクションごとに例外処理を自由に構成できます

 <action name="actionspecificexception" class="org.apache.struts.register.action.Register" method="throwSecurityException">
     <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" 
          result="login" />
      <result>/register.jsp</result>
      <result name="login">/login.jsp</result>
   </action>

それらをどのように構成するかはあなたの好みです。詳細については、ドキュメントを参照してください

Value-Stackから例外の詳細にアクセスするオプションもあります。デフォルトでExceptionMappingInterceptorは、次の値が Value Stack に追加されます。

  • exception 例外オブジェクト自体
  • exceptionStack スタック トレースの値

JSPでこれらのオブジェクトにアクセスする方法は次のとおりです

 <s:property value="%{exception.message}"/>
 <s:property value="%{exceptionStack}"/>

詳しくは詳細へ

于 2012-04-16T06:39:41.760 に答える
0

You can pick those

Struts 2

Spring 3

于 2012-04-16T06:34:14.737 に答える