クラス ResponseStatusExceptionResolver

java.lang.ObjectSE
org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver
org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver
実装されたすべてのインターフェース:
AwareMessageSourceAwareOrderedHandlerExceptionResolver

public class ResponseStatusExceptionResolver extends AbstractHandlerExceptionResolver implements MessageSourceAware
@ResponseStatus アノテーションを使用して例外を HTTP 状況コードにマップする HandlerExceptionResolver

この例外リゾルバーは、DispatcherServlet および MVC Java 構成と MVC 名前空間でデフォルトで有効になっています。

4.2 の時点で、このリゾルバーは原因の例外に存在する @ResponseStatus を再帰的に検索し、4.2.2 の時点でこのリゾルバーはカスタム合成アノテーションで @ResponseStatus の属性オーバーライドをサポートします。

5.0 現在、このリゾルバーは ResponseStatusException もサポートしています。

導入:
3.0
作成者:
Arjen Poutsma, Rossen Stoyanchev, Sam Brannen
関連事項:
  • コンストラクターの詳細

    • ResponseStatusExceptionResolver

      public ResponseStatusExceptionResolver()
  • メソッドの詳細

    • setMessageSource

      public void setMessageSource(@Nullable MessageSource messageSource)
      インターフェースからコピーされた説明: MessageSourceAware
      このオブジェクトが実行される MessageSource を設定します。

      通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet またはカスタム init メソッドのような初期コールバックの前に呼び出されます。ApplicationContextAware の setApplicationContext の前に呼び出されます。

      次で指定:
      インターフェース MessageSourceAwaresetMessageSource 
      パラメーター:
      messageSource - このオブジェクトが使用するメッセージソース
    • doResolveException

      @Nullable protected ModelAndView doResolveException(HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex)
      クラスからコピーされた説明: AbstractHandlerExceptionResolver
      ハンドラーの実行中にスローされた特定の例外を実際に解決し、適切であれば特定のエラーページを表す ModelAndView を返します。

      特定の例外チェックを適用するために、サブクラスでオーバーライドされる場合があります。このテンプレートメソッドは、このリゾルバーが適用されるかどうか ( "mappedHandlers" など) を確認した後に呼び出されるため、実装は実際の例外処理を続行するだけでよいことに注意してください。

      次で指定:
      クラス AbstractHandlerExceptionResolverdoResolveException 
      パラメーター:
      request - 現在の HTTP リクエスト
      response - 現在の HTTP レスポンス
      handler - 実行されたハンドラー、または例外時に何も選択されなかった場合は null (たとえば、マルチパート解決が失敗した場合)
      ex - ハンドラーの実行中にスローされた例外
      戻り値:
      転送先の対応する ModelAndView、または解決チェーンでのデフォルト処理の場合は null 
    • resolveResponseStatus

      protected ModelAndView resolveResponseStatus(ResponseStatus responseStatus, HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex) throws ExceptionSE
      @ResponseStatus アノテーションを処理するテンプレートメソッド。

      デフォルトの実装は、アノテーションからのステータスコードと理由で applyStatusAndReason(int, java.lang.String, jakarta.servlet.http.HttpServletResponse) に委譲します。

      パラメーター:
      responseStatus - @ResponseStatus アノテーション
      request - 現在の HTTP リクエスト
      response - 現在の HTTP レスポンス
      handler - 実行されたハンドラー、または例外のときに何も選択されていない場合は null マルチパート解決が失敗した場合
      ex - 例外
      戻り値:
      空の ModelAndView、つまり例外が解決された
      例外:
      ExceptionSE
    • resolveResponseStatusException

      protected ModelAndView resolveResponseStatusException(ResponseStatusException ex, HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler) throws ExceptionSE
      ResponseStatusException を処理するテンプレートメソッド。

      デフォルトの実装では、ResponseStatusException.getHeaders() からのヘッダーが適用され、例外からのステータスコードと理由とともに applyStatusAndReason(int, java.lang.String, jakarta.servlet.http.HttpServletResponse) に委譲されます。

      パラメーター:
      ex - 例外
      request - 現在の HTTP リクエスト
      response - 現在の HTTP レスポンス
      handler - 実行されたハンドラー、または例外のときに何も選択されていない場合は null マルチパート解決が失敗した場合
      戻り値:
      空の ModelAndView、つまり例外が解決された
      例外:
      ExceptionSE
      導入:
      5.0
    • applyStatusAndReason

      protected ModelAndView applyStatusAndReason(int statusCode, @Nullable StringSE reason, HttpServletResponseEE response) throws IOExceptionSE
      解決済みのステータスコードと理由をレスポンスに適用します。

      デフォルトの実装では、理由がある場合は HttpServletResponse.sendError(int)EE または HttpServletResponse.sendError(int, String)EE を使用してレスポンスエラーを送信し、空の ModelAndView を返します。

      パラメーター:
      statusCode - HTTP ステータスコード
      reason - 関連する理由 (null または空の場合があります)
      response - 現在の HTTP レスポンス
      例外:
      IOExceptionSE
      導入:
      5.0