में फ़ील्ड स्वरूपों का वैश्विक पंजीकरण मैंने विकेट में बिगडिसीमल स्वरूपण को अनुकूलित करने के बारे में सावधानीपूर्वक Jonik's entry का अध्ययन किया है। कोड के इस उत्कृष्ट टुकड़े के लिए धन्यवाद। दुर्भाग्य से मैं इसे अपने उपयोग के मामले के लिए काम नहीं कर सकता।विकेट
मैं विश्व स्तर पर दिनांक प्रारूपण पंजीकृत करना चाहते हैं और आवेदन उपवर्ग में निम्नलिखित कोड का उपयोग कर रहा:
@Override
protected IConverterLocator newConverterLocator() {
ConverterLocator converterLocator = new ConverterLocator();
converterLocator.set(Date.class, new DateConverter() {
@Override
public DateFormat getDateFormat(Locale ignore) {
return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
}
});
return converterLocator;
}
फिर जब वेब पृष्ठों कोड है में दिनांक फ़ील्ड का उपयोग कर इस प्रकार है:
form.add(new TextField<Date>("dateField"));
प्रस्तुत किए जाने पर, दिनांक फ़ील्ड मानक java.text.DateFormat.SHORT
(02.11.11 11:59) स्वरूपण को मेरे कस्टम SimpleDateFormat (02.11.2011 11:59:42) के बजाय org.apache.wicket.util.convert.converter.DateConverter
कक्षा से आ रहा है।
मैंने जांच की है कि java.util.Date का उपयोग पूरे समय किया जा रहा है। विकेट संस्करण 1.4.12 है।
कोई विचार?
यह नया टेक्स्टफ़िल्ल्ड ("डेटफ़िल्ल्ड", नया मॉडल (नई तिथि()) का उपयोग करके 1.4.12 क्विकस्टार्ट में ठीक काम कर रहा है। टेक्स्टफिल्ड का मॉडल क्या है? यदि प्रपत्र में कंपाउंडप्रोपर्टी मॉडेल है, तो कौन सा वर्ग संपत्ति दिनांक फ़ील्ड का हल करता है? –
धन्यवाद ज़वी। यह फॉर्म एक 'कंपाउंडप्रोपर्टी मॉडेल' है जो एक दृढ़ता इकाई का जिक्र करता है जिसका 'डेटफिल्ल्ड' java.util.Date है। चूंकि हम दृढ़ता इकाइयों का उपयोग कर रहे हैं, गेटटर/सेटर श्रृंखलाओं के अंत में फ़ील्ड कच्चे जावा डेटा प्रकार हैं, न कि इमेडेल के कार्यान्वयन। क्या यह समस्या है? –
क्या आप निश्चित हैं कि आपका 'नया कनवर्टर लोकेटर() 'उपयोग किया जा रहा है? क्या चल रहा है यह देखने के लिए आपने 'Component.getConverter (क्लास)' के माध्यम से डीबग किया है? आप इस विशेष घटक में ओवरराइड में आसानी से ब्रेकपॉइंट डाल सकते हैं। –