public class ResponseStatusExceptionResolver extends AbstractHandlerExceptionResolver implements MessageSourceAware
@ResponseStatus アノテーションを使用して例外を HTTP 状況コードにマップする HandlerExceptionResolver。 この例外リゾルバーは、DispatcherServlet および MVC Java 構成と MVC 名前空間でデフォルトで有効になっています。
4.2 の時点で、このリゾルバーは原因の例外に存在する @ResponseStatus を再帰的に検索し、4.2.2 の時点でこのリゾルバーはカスタム合成アノテーションで @ResponseStatus の属性オーバーライドをサポートします。
5.0 現在、このリゾルバーは ResponseStatusException もサポートしています。
ResponseStatus, ResponseStatusExceptionloggerHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| コンストラクターと説明 |
|---|
ResponseStatusExceptionResolver() |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected ModelAndView | applyStatusAndReason(int statusCode, StringSE reason, HttpServletResponseEE response) 解決済みのステータスコードと理由をレスポンスに適用します。 |
protected ModelAndView | doResolveException(HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex) ハンドラーの実行中にスローされた特定の例外を実際に解決し、適切であれば特定のエラーページを表す ModelAndView を返します。 |
protected ModelAndView | resolveResponseStatus(ResponseStatus responseStatus, HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler, ExceptionSE ex)@ResponseStatus アノテーションを処理するテンプレートメソッド。 |
protected ModelAndView | resolveResponseStatusException(ResponseStatusException ex, HttpServletRequestEE request, HttpServletResponseEE response, ObjectSE handler)ResponseStatusException を処理するテンプレートメソッド。 |
void | setMessageSource(MessageSource messageSource) このオブジェクトが実行される MessageSource を設定します。 |
buildLogMessage, getOrder, hasHandlerMappings, logException, prepareResponse, preventCaching, resolveException, setMappedHandlerClasses, setMappedHandlers, setOrder, setPreventResponseCaching, setWarnLogCategory, shouldApplyTocloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic void setMessageSource(MessageSource messageSource)
MessageSourceAware通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet などの init コールバックやカスタム init メソッドの前に呼び出されます。ApplicationContextAware の setApplicationContext の前に呼び出されます。
MessageSourceAware の setMessageSource messageSource - このオブジェクトが使用するメッセージソース @Nullable protected ModelAndView doResolveException(HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex)
AbstractHandlerExceptionResolverModelAndView を返します。特定の例外チェックを適用するために、サブクラスでオーバーライドできます。このテンプレートメソッドは、この解決が適用されるかどうか ( "mappedHandlers" など) を確認した後に呼び出されるため、実装では実際の例外処理をそのまま続行できます。
AbstractHandlerExceptionResolver の doResolveException request - 現在の HTTP リクエスト response - 現在の HTTP レスポンス handler - 実行されたハンドラー、または例外時に何も選択されなかった場合は null (たとえば、マルチパート解決が失敗した場合)ex - ハンドラーの実行中にスローされた例外 ModelAndView、または解決チェーンでのデフォルト処理の場合は null protected ModelAndView resolveResponseStatus(ResponseStatus responseStatus, HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler, ExceptionSE ex) throws ExceptionSE
@ResponseStatus アノテーションを処理するテンプレートメソッド。 デフォルトの実装は、アノテーションからのステータスコードと理由で applyStatusAndReason(int, java.lang.String, javax.servlet.http.HttpServletResponse) に委譲します。
responseStatus - @ResponseStatus アノテーション request - 現在の HTTP リクエスト response - 現在の HTTP レスポンス handler - 実行されたハンドラー、または例外のときに何も選択されていない場合は null マルチパート解決が失敗した場合 ex - 例外 ExceptionSEprotected ModelAndView resolveResponseStatusException(ResponseStatusException ex, HttpServletRequestEE request, HttpServletResponseEE response, @Nullable ObjectSE handler) throws ExceptionSE
ResponseStatusException を処理するテンプレートメソッド。 デフォルトの実装では、ResponseStatusException.getResponseHeaders() からのヘッダーが適用され、例外からのステータスコードと理由とともに applyStatusAndReason(int, java.lang.String, javax.servlet.http.HttpServletResponse) に委譲されます。
ex - 例外 request - 現在の HTTP リクエスト response - 現在の HTTP レスポンス handler - 実行されたハンドラー、または例外のときに何も選択されていない場合は null マルチパート解決が失敗した場合 ExceptionSEprotected 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