Làm cách nào tôi có thể đặt mã trạng thái HTTP một cách thuận tiện trong trình xử lý yêu cầu Spring MVC?Điều kiện thiết lập trạng thái HTTP mà không cần thao tác trực tiếp HttpServletResponse
Tôi có trình xử lý yêu cầu phản hồi yêu cầu POST, để tạo tài nguyên mới. Nếu yêu cầu hợp lệ, tôi muốn nó chuyển hướng đến URI của tài nguyên mới, trả lại mã trạng thái HTTP (Tạo). Nếu yêu cầu không hợp lệ Tôi muốn nó để cung cấp cho người dùng một cơ hội để sửa lỗi theo hình thức gửi, và không nên đưa ra một mã trạng thái của 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";
}
}
Nhưng điều đó không cho trạng thái phản hồi chính xác cho trường hợp chuyển hướng.
Tôi không thể chỉ cần thêm @ResponseStatus
, bởi vì có hai trạng thái có thể. Tôi hy vọng có một cách neater hơn manually manipulating the HttpServletResponse
. Và tôi muốn chỉ định tên chế độ xem để sử dụng, vì vậy tôi không thể have the request handler return a ResponseEntity
object with the status set appropriately.
"Nếu có, bạn không thể sử dụng chuyển hướng" Tôi biết. Đó là điểm của câu hỏi của tôi – Raedwald