पर एकाधिक सबमिट बटन मैं एक फॉर्म में 2 सबमिट बटन पोस्ट करने की कोशिश कर रहा हूं, प्रत्येक बटन एक्शन विभिन्न नियंत्रकों के लिए मैप किया गया है।स्प्रिंग एमवीसी - एक फॉर्म
<input type="submit" name="save" class="button" value="Save" />
<input type="submit" name="renew" class="button" value="Renew" />
तुम मेरे मानचित्रण से, मैं अलग करने के लिए क्या बटन पर क्लिक किया गया पैरामीटर के उपयोग पर निर्भर कर रहा हूँ देख सकते हैं - यहाँ मेरी मैपिंग
@RequestMapping(value="/save", method=RequestMethod.POST, params="save")
@RequestMapping(value="/save", method=RequestMethod.POST, params="renew")
और मेरे प्रस्तुत बटन इन की तरह लग रहे हैं। ,
java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path 'http://localhost:8090/myapp/save': {public java.lang.String com.myapp.SaveController.save(MyEntity,javax.servlet.http.HttpSession), public java.lang.String com.myapp.SaveController.saveAndRenew(MyEntity,javax.servlet.http.HttpSession)}
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:248)
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:194)
अजीब जब ऐसा होता है और मैं पेज फिर से जमा कर सब कुछ ठीक बाद में काम करता है, - समस्या यह है कि यह समय के 90% काम करता है, लेकिन कभी कभी मैं नीचे अपवाद है। क्या मैं जो करने की कोशिश कर रहा हूं उसे हासिल करने का एक बेहतर तरीका है?
धन्यवाद! यदि प्रपत्र इन बटनों निर्दिष्ट किया है
@RequestMapping(value="/save", method=RequestMethod.POST)
public String handlePost(@RequestParam String action){
if(action.equals("save")){
//handle save
}
else if(action.equals("renew")){
//handle renew
}
}
यकीन है कि अगर इसकी आपकी समस्या नहीं है, लेकिन यह ध्यान रखें उपयोगकर्ता प्रपत्र सबमिट करता है, तो कुछ ब्राउज़रों अभ्यस्त किसी भी बटन के मुख्य/मान जोड़े भेज बटन पर क्लिक करने के अलावा एंटर कुंजी या कुछ अन्य तरीकों के माध्यम से। इसलिए, एक डिफ़ॉल्ट कार्रवाई मानना सुनिश्चित करें, जो कि ब्राउज़र संगतता के लिए उस फ़ॉर्म के HTML स्रोत में * पहले बटन * की कार्रवाई करने की आवश्यकता है। – goat