Spring MVCリクエストハンドラでHTTPステータスコードを条件付きで簡単に設定する方法はありますか?HttpServletResponseを直接操作せずにHTTPステータスを条件付きで設定する
私は、新しいリソースの作成のためにPOSTリクエストに応答するリクエストハンドラを持っています。リクエストが有効な場合は、新しいリソースのURIにリダイレクトし、201(作成済み)HTTPステータスコードを返します。リクエストが無効である場合、私はそれがユーザーに送信されたフォームでのエラーを修正する機会を与えたい、と201
@RequestMapping(value = { "/myURI/" }, method = RequestMethod.POST)
public String processNewThingForm(
@ModelAttribute(value = "name") final String name,
final BindingResult bindingResult) {
myValidator.validate(name, bindingResult);
if (!bindingResult.hasErrors()) {
getService().createThing(name);
return "redirect:" + name;
} else {
return "newThingView";
}
}
のステータスコードを与えるべきではありませんしかし、それは与えるものではありません。リダイレクトの場合の正しい応答ステータス
ステータスが2つありますので、単に@ResponseStatus
を追加することはできません。私はmanually manipulating the HttpServletResponse
よりも控えめな方法があることを望んでいます。使用するビュー名を指定したいので、私はhave the request handler return a ResponseEntity
object with the status set appropriatelyできません。
"もしそうなら、私は知っているリダイレクトを使うことはできません。それが私の質問のポイントです – Raedwald