アノテーションインターフェース 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
- 関連事項:
オプション要素のサマリー
要素の詳細
value
code()
のエイリアス。- デフォルト:
- INTERNAL_SERVER_ERROR
code
レスポンスに使用するステータスコード。デフォルトは
HttpStatus.INTERNAL_SERVER_ERROR
で、通常はより適切なものに変更する必要があります。- デフォルト:
- INTERNAL_SERVER_ERROR
reason
StringSE reasonレスポンスに使用される理由。デフォルトは空の文字列で、無視されます。サーブレットコンテナーのエラーページの送信に使用するには、理由を空ではない値に設定します。この場合、ハンドラーメソッドの戻り値は無視されます。
- デフォルト:
- ""