अधिक हाल के संस्करण। हालांकि, दुर्भाग्य से जारी की गई समस्या दुर्भाग्य से मौजूद है: डिफ़ॉल्ट DateFormatter
is unable to properly convertnull
Date
ऑब्जेक्ट पर एक खाली स्ट्रिंग। जो मुझे बेहद परेशान लगता है वह यह है कि स्प्रिंग प्रलेखन contains a date formatter snippet example where the proper guard clauses are implemented दोनों रूपांतरणों (स्ट्रिंग्स से और) के लिए। ढांचे के कार्यान्वयन और ढांचे के दस्तावेज़ीकरण के बीच यह विसंगति वास्तव में मुझे पागल कर देती है, जितनी जल्दी मैं कार्य को समर्पित करने के लिए कुछ समय पाता हूं, उतना ही मैं पैच जमा करने का प्रयास कर सकता हूं।
इस बीच में, हर किसी के लिए मेरे सुझाव इस समस्या का सामना स्प्रिंग ढांचे का आधुनिक संस्करण का उपयोग करते समय (भी अगर यह आवश्यक है इसके print
विधि,) डिफ़ॉल्ट DateFormatter
उपवर्ग और उसके parse
विधि ओवरराइड करने के लिए इतनी के रूप में जोड़ने के लिए है दस्तावेज में दिखाए गए एक के फैशन में एक गार्ड खंड।
package com.example.util;
import java.text.ParseException;
import java.util.Date;
import java.util.Locale;
public class DateFormatter extends org.springframework.format.datetime.DateFormatter {
@Override
public Date parse(String text, Locale locale) throws ParseException {
if (text != null && text.isEmpty()) {
return null;
}
return super.parse(text, locale);
}
}
फिर, कुछ संशोधनों के एक्सएमएल स्प्रिंग विन्यास के लिए लागू किया जाना चाहिए: एक रूपांतरण सेवा सेम परिभाषित किया जाना चाहिए, और mvc
नाम स्थान में annotation-driven
तत्व में इसी विशेषता को ठीक से सेट किया जाना चाहिए।
<mvc:annotation-driven conversion-service="conversionService" />
<beans:bean
id="conversionService"
class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<beans:property name="formatters">
<beans:set>
<beans:bean class="com.example.util.DateFormatter" />
</beans:set>
</beans:property>
</beans:bean>
एक विशिष्ट तिथि प्रारूप देने के लिए DateFormatter
सेम के pattern
संपत्ति ठीक से सेट किया जाना चाहिए।
<beans:bean class="com.example.util.DateFormatter">
<beans:property name="pattern" value="yyyy-MM-dd" />
</beans:bean>
स्रोत
2015-04-07 18:20:34
यदि आप एक कस्टम PropertyEditor पंजीकृत नहीं करते हैं तो यह गैर-खाली तारों के लिए कैसे काम कर सकता है? – axtavt
क्योंकि वसंत में PropertyEditors में कई प्रकार के निर्माण किए गए हैं, जैसे: http://static.springsource.org/spring/docs/3.0.3.RELEASE/spring-framework-reference/html/validation.html#beans-beans- रूपांतरण –
यह भी कहता है कि कस्टमडेट एडिटर डिफ़ॉल्ट रूप से पंजीकृत नहीं है, लेकिन ऐसा लगता है कि वास्तव में यह है! –