अगर मेरे पास निम्नलिखित के समान मैपिंग का अनुरोध है:
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public void test(@RequestParam(value = "i", defaultValue = "10") int i) {
}
और फिर इस अनुरोध के साथ कॉल करें:
http://example.com/test?i=
मुझे त्रुटि संदेश मिलता है
'Java.lang.String' प्रकार के मान को 'int' में बदलने में विफल; नेस्टेड अपवाद java.lang.NumberFormatException: इनपुट स्ट्रिंग के लिए है: "" ''
मैं इसका हल या तो जावास्क्रिप्ट क्लाइंट को खाली पैरामीटर भेजने से रोक सकता हूं, या स्ट्रिंग मान स्वीकार कर सकता हूं और केवल पार्सिंग कर सकता हूं यदि वे रिक्त नहीं पाए जाते हैं।
अद्यतन : वसंत के बाद के संस्करण अब मूल रूप से वांछित व्यवहार को लागू करते हैं।
मैंने बस इसे वसंत 4.3.5 में परीक्षण किया है और पाया है कि व्यवहार अब वास्तव में शून्य मान को डिफ़ॉल्ट मूल्य में बदल देगा, बिना NumberFormatExceptionइस प्रकार; मेरी मूल मैपिंग अब ठीक काम करती है।
मुझे यकीन नहीं है कि वसंत के किस संस्करण में यह व्यवहार परिवर्तन किया गया था।
Stringप्रकार। user902383, यह सही है, हालांकि एक पूर्णांक मान के लिए मैं पसंद करूंगा कि एक अशक्त / खाली मान बजाए defaultValue का उपयोग करेगा।