आपके पास एक फॉर्म और एकाधिक सबमिट बटन हैं। समस्या यह है कि एक फॉर्म केवल एक ही क्रिया को सबमिट कर सकता है, इससे कोई फर्क नहीं पड़ता कि फ़ॉर्म के अंदर आपके पास कितने सबमिट बटन हैं।
तीन समाधान अभी दिमाग में आते हैं:
1. सिर्फ एक कार्रवाई जहां सब कुछ प्रस्तुत करना। एक बार एक्शन क्लास के अंदर जांच करें कि फ़ॉर्म जमा करने के लिए किस बटन का इस्तेमाल किया गया था और उसके आधार पर उचित उपचार किया गया था।
if (request.getParameter("delete") != null || request.getParameter("delete.x") != null) {
//... delete stuff
} else if (request.getParameter("edit") != null || request.getParameter("edit.x") != null) {
//...edit stuff
} else if (request.getParameter("update") != null || request.getParameter("update.x") != null) {
//... update stuff
}
2. HTML प्रपत्र की कार्रवाई विशेषता प्रपत्र प्रस्तुत करने से पहले जावास्क्रिप्ट का उपयोग बदल गए हैं:
<html:form action="modify">
..
..
<html:submit value="delete"/>
<html:submit value="edit" />
<html:sumit value="update" >
</html:form>
ModifyAction.execute(...)
विधि में की तरह कुछ है।
हैंडलर के साथ
:
function submitTheForm(theNewAction) {
var theForm = ... // get your form here, normally: document.forms[0]
theForm.action = theNewAction;
theForm.submit();
}
3. (1 बात करने के लिए एक कार्रवाई वर्ग समान) एक DispatchAction
का प्रयोग करें, लेकिन बिना आप पहले क्लिक संचालकों संलग्न के साथ सादे लोगों के लिए बटन प्रस्तुत बदलने DispatchAction
द्वारा इलाज किए जाने के बाद से कौन सा बटन क्लिक किया गया था, इसकी जांच करने की आवश्यकता।
आप केवल तीन निष्पादन विधियों को delete
, edit
और update
नाम से प्रदान करते हैं। Here is an example that explains how you might do it।
निष्कर्ष: नंबर 1 के लिए, मुझे वास्तव में उन बदसूरत परीक्षणों को पसंद नहीं है .... नंबर 2 के लिए, मुझे वास्तव में यह तथ्य पसंद नहीं है कि आपको जावास्क्रिप्ट का उपयोग करके एक्शन फॉर्म के साथ खेलना है, तो मैं व्यक्तिगत रूप से नंबर 3 के लिए जाना होगा। ActionForm currentTimeForm में
, जोड़ने के एक स्ट्रिंग संपत्ति (उदाहरण:: buttonClicked)
बहुत बहुत धन्यवाद .... मुझे कोशिश करें ... – Nageswaran
वास्तव में आपके द्वारा दिया गया अच्छा मार्गदर्शन - +1 – Naved
वाह। वास्तव में मुझे क्या चाहिए। बहुत बहुत धन्यवाद! – ykombinator