मैं स्प्रिंग 3 पोर्टलेट एमवीसी का उपयोग कर रहा हूं। केवल एमवीसी में सत्यापन/बाध्यकारी एक जैसा होना चाहिए।@RequestParam के लिए BindingResult प्राप्त करने का कोई तरीका?
मुझे केवल एक ही int
फॉर्म फ़ील्ड मिला है। मैं
void doSmth(MyForm form, BindingResult bindingResult) throws ... {
int bindErrors = bindingResult.getErrorCount())
...
जब कर रहा हूँ और एक फ़ील्ड मान कि int
के रूप में पार्स नहीं किया जा सकता इस विधि मार डाला जाता है और bindErrors
1. प्रपत्र फ़ील्ड मान है कि इस विधि को प्राप्त करता है 0. बहुत बढ़िया है प्रस्तुत करने।
लेकिन एक फ़ील्ड रखने के लिए सिर्फ एक फॉर्म बनाना बहुत अच्छा नहीं है।
मैं करने के लिए कोड बदल रहा हूँ:
void doSmth(@RequestParam int userId, BindingResult bindingResult) ... {
int bindErrors = bindingResult.getErrorCount())
...
और ब्राउज़र में Portlet उपलब्ध नहीं संदेश मिल रहा है और इस अपवाद:
org.springframework.web.portlet.FrameworkPortlet ProcessRequest किया जा सका पूर्ण अनुरोध नहीं org.springframework.beans.TypeMismatchException: प्रकार 'java.lang.String' प्रकार के मूल्य को आवश्यक प्रकार 'int' में परिवर्तित करने में विफल; नेस्टेड अपवाद java.lang.NumberFormatException है: इनपुट स्ट्रिंग के लिए: "q"
प्रश्न: वहाँ विधि निष्पादन के साथ आगे बढ़ना है और यहां तक कि अगर @RequestParam
रूपांतरण विफल रहता है उस में बाध्यकारी त्रुटियों पर कार्रवाई करने के लिए किसी भी तरह है? मैंने @RequestParam
बनाने की आवश्यकता नहीं है और इसके लिए एक डिफ़ॉल्ट मूल्य प्रदान करने की कोशिश की - मदद नहीं की।
अच्छी तरह से करता है, तो यह तो मुझे लगता है कि बॉक्स से बाहर समर्थित नहीं है मैं एक मूल्य बीन के साथ रह सकता हूं, धन्यवाद –