@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 | valuecode() のエイリアス。 |
@AliasFor(value="code") public abstract HttpStatus value
code() のエイリアス。@AliasFor(value="value") public abstract HttpStatus code
デフォルトは HttpStatus.INTERNAL_SERVER_ERROR で、通常はより適切なものに変更する必要があります。
public abstract StringSE reason