SpringBoot - BasicErrorController

11379 ワード

BasicErrorController


BasiceErrorControllerは、次の情報をモデルに入れてビューに渡します.ビューテンプレートは、これらの値を使用して出力できます.
timestampSun Aug 16 00:00:00 KST 2021status400errorBad Requestexceptionorg.springframework.validation.BindExceptiontrace異常traceMessageValidation for Object="data"に失敗しました.Error count:1 errorsErrors(BindResult)パスクライアント要求パス("/hello")
ただし、これらのエラーに関連する内部情報をクライアントに暴露するべきではありません.
したがって、BasicErrorControllerは、モデルに次のエラーメッセージを含めるかどうかを選択できます.

application.yml

server:
  error:
    whitelabel:
      enabled: false
    include-exception: false
    include-message: never
    include-stacktrace: never
    include-binding-errors: never
never:無効
常に:常に使用
on param:パラメータが存在する場合に使用
on paramパラメータがある場合、この情報が表示されます.デバッグ時に問題を確認できます.ただし、この部分は開発サーバでも使用できますが、本番サーバでの使用は推奨されません.
これをon paramに設定し、HTTPリクエスト時にパラメータを渡すと、これらの情報はモデルに含まれ、ビューテンプレートから出力されます.
message=&errors=&trace=

エラーメッセージ500を追加します。html

<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
</head>
<body>

<div class="container" style="max-width: 600px">
    <div class="py-5 text-center">
        <h2>500 오류 화면 스프링 부트 제공</h2>
    </div>

    <div>
        <p>오류 화면 입니다.</p>
    </div>

    <ul>
        <li>오류 정보</li>
        <ul>
            <li th:text="|timestamp: ${timestamp}|"></li>
            <li th:text="|path: ${path}|"></li>
            <li th:text="|status: ${status}|"></li>
            <li th:text="|message: ${message}|"></li>
            <li th:text="|error: ${error}|"></li>
            <li th:text="|exception: ${exception}|"></li>
            <li th:text="|erros: ${errors}|"></li>
            <li th:text="|trace: ${trace}|"></li>
        </ul>
    </ul>

    <hr class="my-4"/>
</div>

</body>
</html>

結果



スプリング起動エラーに関するオプション

  • server.error.whitelabel.enabled=true:エラー処理画面が見つからない場合はspringwhitelabelエラーページ
  • を適用します.
  • server.error.path=/error:エラーページパス、spring自動登録サーブレットグローバルエラーページパス、BasicErrorControllerエラーコントローラパス.
  • 拡張点


    エラー汎用処理コントローラの機能を変更する場合は、エラーコントローラインタフェースを継承して実装するか、基本エラーコントローラ追加機能を継承します.