मैं एक हटाए गए लिंक (ए href) या हटाएं बटन (फॉर्म) के माध्यम से किसी पृष्ठ पर एक इकाई को हटाने की कोशिश कर रहा हूं। मैं के बाद से एक लिंक एक "पोस्ट करें"प्रोग्रामिंग स्प्रिंग एमवीसी नियंत्रक और जेएसपी HttpDelete
के बजाय "GET" के लिए कहता है बटन को नष्ट उपयोग कर रहा हूँ यह वह जगह है JSP कोड जो कि कर रही पर इरादा रखता है:
<td><form:form method="DELETE" action="/client/invoices/${invoice.id}"><input type="submit" value="delete"></form:form></td>
जिसके परिणामस्वरूप एचटीएमएल यह है:
<td><form id="command" action="/client/invoices/9" method="post"><input type="hidden" name="_method" value="DELETE"/><input type="submit" value="delete"></form></td>
तो, मैं बहुत खुश हूं। इसमें _method है जो इंगित करता है कि यह एक निष्कासित कार्रवाई है। यहां मेरा नियंत्रक कोड है:
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
public String delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
invoiceServiceHibernate.removeInvoice(id);
return "redirect:/invoices";
}
तो, क्या होता है कि इस विधि को नहीं कहा जाता है। मेरे पास एक और तरीका है जो एक चालान बनाने के लिए एक पोस्ट करता है और हटाए गए बटन पर क्लिक करके इसके बजाय चालान बनाता है। मेरा अनुमान है कि नियंत्रक एक अनुरोध अनुरोध के रूप में सर्वलेट को देखता है और पहली विधि का उपयोग करता है जो POST अनुरोध को संभालता है जो इस मामले में एक नया चालान बनाना है।
मैं इस "RESTful" बनाने के लिए तो मैं इस /invoice/id
और POST, PUT, DELETE, GET
का उपयोग कर रहना चाहता हूँ की कोशिश, लेकिन मैं कोड करने के लिए कैसे है कि नियंत्रक वसंत MVC का उपयोग करने में यकीन नहीं है।
मैं इस तरह के /invoices/id/delete
के रूप में "क्रियाएं" जोड़कर और के रूप में
@RequestMapping(value = "/{id}/delete", method = RequestMethod.POST)
ध्यान दें, RequestMethod.POST नियंत्रक की स्थापना लेकिन जब से नक्शा मूल्यों को स्पष्ट रूप से /id/delete
है, यह करता है के द्वारा काम करने के लिए प्राप्त करने में सक्षम हूँ डिफ़ॉल्ट पोस्ट का उपयोग न करें जो /invoices
और /invoices/id
पर मैप किया गया है।
मुझे आशा है कि मैं स्पष्ट हूं। अगर किसी के पास कोई सुझाव या नमूना कोड है (दृढ़ता से preffered), मैं इसकी सराहना करता हूं। मैं संदर्भ के लिए इन अतः लिंक पढ़ा है: Link1 Link2 Link3
Am एक ही समस्या का सामना करना पड़ (सर्वलेट एपीआई 3.0+ की आवश्यकता है)। मैंने फिल्टर भी जोड़ा है। लेकिन हटाएं विधि हटाएं POST में परिवर्तित हो गई है। क्या आप – shalu