Come faccio a utilizzare correttamente RESTful delete nel controller Spring MVC? Ho DAO che restituisce booleano quando si tenta di eliminare alcuni elementi.Come gestire l'eliminazione RESTful in Spring MVC
Sto tentando di eliminare l'elemento. Se tutto era OK, mostra solo l'elenco degli articoli (l'elemento cancellato non sarà più lì). Se l'articolo non può essere rimosso, reindirizza alla pagina dei dettagli e spiega perché non è stato possibile eliminarlo.
Ho bisogno di qualche stato di risposta speciale o qualcosa del genere? RESTful è il mio approccio?
@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 ma quando lo faccio in questo modo, come faccio a mettere le cose nel modello per essere disponibili sulla pagina risolta come "errorView"? Prima di lanciare l'eccezione, ho inserito "model.addAttribute (" badItem ", elemento)" ... ma non è disponibile nella pagina errorView.jsp – Xorty
È possibile restituire un 'nuovo ModelAndView (" errorView "," badItem ", ex .getItem()) 'dal controller, supponendo che tu abbia un'eccezione personalizzata che potrebbe mantenere un riferimento all'elemento. Anche se sembra un po 'complicato. – Kodi
Sì, probabilmente è la cosa migliore da fare – Xorty