@TargetSE(valueSE={TYPESE,METHODSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE public @interface ResponseStatus
code()
および reason()
でメソッドまたは例外クラスをマークします。 ステータスコードは、ハンドラーメソッドが呼び出されたときに HTTP レスポンスに適用され、ResponseEntity
や "redirect:"
などの他の方法で設定されたステータス情報をオーバーライドします。
警告 : このアノテーションを例外クラスで使用する場合、またはこのアノテーションの reason
属性を設定する場合は、HttpServletResponse.sendError
メソッドが使用されます。
HttpServletResponse.sendError
を使用すると、レスポンスは完全であると見なされ、これ以上書き込む必要はありません。さらに、サーブレットコンテナーは通常 HTML エラーページを書き込むため、reason
の使用は REST API には不適切です。このような場合は、ResponseEntity
を戻り値の型として使用し、@ResponseStatus
を完全に使用しないことをお勧めします。
コントローラークラスには @ResponseStatus
アノテーションを付けることもでき、すべての @RequestMapping
メソッドによって継承されることに注意してください。
ResponseStatusExceptionResolver
, HttpServletResponse.sendError(int, String)
EE修飾子と型 | オプションの要素と説明 |
---|---|
HttpStatus | code レスポンスに使用するステータスコード。 |
StringSE | reason レスポンスに使用される理由。 |
HttpStatus | value code() のエイリアス。 |
@AliasFor(value="code") public abstract HttpStatus value
code()
のエイリアス。@AliasFor(value="value") public abstract HttpStatus code
デフォルトは HttpStatus.INTERNAL_SERVER_ERROR
で、通常はより適切なものに変更する必要があります。
public abstract StringSE reason