¿Cómo uso correctamente la eliminación RESTful en el controlador Spring MVC? Tengo DAO que devuelve boolean cuando intento eliminar algún elemento.Cómo manejar la eliminación RESTful en Spring MVC
Estoy tratando de eliminar el artículo. Si todo estaba bien, solo muestra la lista de elementos (el elemento eliminado ya no estará allí). Si el elemento no se puede eliminar, redirija a la página de detalles y diga por qué no se pudo eliminar.
¿Necesito algún tipo de respuesta especial o algo como esto? ¿Mi enfoque es 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, pero cuando lo hago así, ¿cómo pongo cosas en el modelo para que estén disponibles en la página resuelta como "errorView"? Antes de lanzar la excepción, coloque "model.addAttribute (" badItem ", artículo)" ... pero no está disponible en la página errorView.jsp – Xorty
Puede devolver un 'new ModelAndView (" errorView "," badItem ", ex .getItem()) 'del controlador, suponiendo que haya una excepción personalizada que pueda mantener una referencia al elemento. Aunque eso parece un poco complicado. – Kodi
Ye eso es probablemente lo mejor para hacer cajero automático – Xorty