アノテーションインターフェース 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() のエイリアス。