Làm cách nào để sử dụng đúng cách xóa RESTful trong bộ điều khiển Spring MVC? Tôi có DAO trả về boolean khi cố gắng xóa một số mục.Làm thế nào để xử lý xóa RESTful trong Spring MVC
Tôi đang cố xóa mục. Nếu mọi thứ đều OK, chỉ hiển thị danh sách các mục (mục đã xóa sẽ không còn ở đó nữa). Nếu không thể xóa mục, hãy chuyển hướng đến trang chi tiết và nói lý do không thể xóa mục đó.
Tôi có cần một số trạng thái phản hồi đặc biệt hoặc một cái gì đó như thế này không? Cách tiếp cận của tôi là RESTful?
@RequestMapping(value = "items/{id}", method = RequestMethod.DELETE)
public String delete(@PathVariable("id") int itemId, Model model) {
Item item = itemDao.get(id);
// true -> can delete
// false -> cannot delete, f.e. is FK reference somewhere
boolean wasOk = itemDao.delete(item);
if (wasOk) {
return "redirect:/items";
}
// will write to user which item couldn't be deleted
model.addAttribute("item", item);
return "items/error";
}
OK nhưng khi tôi làm như vậy, làm cách nào để đưa nội dung vào mô hình có sẵn trên trang được giải quyết là "errorView"? Trước khi tôi ném ngoại lệ, tôi đặt "model.addAttribute (" badItem ", item)" ... nhưng nó không có sẵn tại trang errorView.jsp – Xorty
Bạn có thể trả về một new ModelAndView ("errorView", "badItem", ví dụ .getItem()) 'từ bộ điều khiển, giả sử bạn có một ngoại lệ tùy chỉnh có thể giữ một tham chiếu đến mục đó. Mặc dù điều đó có vẻ hơi lộn xộn một chút. – Kodi
Có lẽ đó là điều tốt nhất để làm – Xorty