アノテーションインターフェース ResponseStatus


@TargetSE({TYPESE,METHODSE}) @RetentionSE(RUNTIMESE) @DocumentedSE public @interface ResponseStatus
返されるステータス code() および reason() でメソッドまたは例外クラスをマークします。

ステータスコードは、ハンドラーメソッドが呼び出されたときに HTTP レスポンスに適用されますが、ResponseEntity や "redirect:" などの他の手段で設定されたステータス情報をオーバーライドすることはありません。

警告 : このアノテーションを例外クラスで使用する場合、またはこのアノテーションの reason 属性を設定する場合は、HttpServletResponse.sendError メソッドが使用されます。

HttpServletResponse.sendError を使用すると、レスポンスは完全であると見なされ、これ以上書き込む必要はありません。さらに、サーブレットコンテナーは通常 HTML エラーページを書き込むため、reason の使用は REST API には不適切です。このような場合は、ResponseEntity を戻り値の型として使用し、@ResponseStatus を完全に使用しないことをお勧めします。

コントローラークラスに @ResponseStatus アノテーションを付けることもできます。このアノテーションは、メソッドのローカル @ResponseStatus 宣言によってオーバーライドされない限り、そのクラスとそのサブクラスのすべての @RequestMapping および @ExceptionHandler メソッドによって継承されます。

導入:
3.0
作成者:
Arjen Poutsma, Sam Brannen
関連事項:
  • オプション要素の概要

    オプション要素
    修飾子と型
    オプションの要素
    説明
    レスポンスに使用するステータスコード
    レスポンスに使用される理由
    code() のエイリアス。
  • 要素の詳細

    • value

      @AliasFor("code") HttpStatus value
      code() のエイリアス。
      デフォルト:
      INTERNAL_SERVER_ERROR
    • code

      @AliasFor("value") HttpStatus code
      レスポンスに使用するステータスコード

      デフォルトは HttpStatus.INTERNAL_SERVER_ERROR で、通常はより適切なものに変更する必要があります。

      導入:
      4.2
      関連事項:
      • HttpServletResponse.setStatus(int)
      • HttpServletResponse.sendError(int)
      デフォルト:
      INTERNAL_SERVER_ERROR
    • reason

      StringSE reason
      レスポンスに使用される理由

      デフォルトは空の文字列で、無視されます。サーブレットコンテナーのエラーページの送信に使用するには、理由を空ではない値に設定します。この場合、ハンドラーメソッドの戻り値は無視されます。

      関連事項:
      • HttpServletResponse.sendError(int, String)
      デフォルト:
      ""