2008-10-02 23 views
6

में एक तिथि संपत्ति के लिए 3 ड्रॉपडाउन बाइंडिंग मैं कक्षा एक भी तिथि संपत्ति के लिए तीन ड्रॉपडाउन (तिथि, माह, वर्ष) बाध्य करने के लिए इतना है कि यह जिस तरह से इसके लिए 'एकल अनुरोध पैरामीटर काम करता है काम करता है कैसे कॉन्फ़िगर करना चाहिए प्रति संपत्ति 'परिदृश्य? मुझे लगता है कि initBinder विधि को ओवरराइड करके कुछ कस्टम PropertyEditors को जोड़ना चाहिए। और क्या ?वसंत MVC: SimpleFormController

उत्तर

4

एलेक्सी कुड्रयवसेव के लिए मानक वसंत सत्यापन का प्रयोग करेंगे -

1

आप अपने रूप में एक छिपे हुए इनपुट बना सकते हैं और जावास्क्रिप्ट का उपयोग करते समय उपयोगकर्ता की तारीख का चयन करता है पॉप्युलेट सकता है, फिर अपना आदेश वस्तु में इस इनपुट से आबद्ध।

शायद आप तारीख की सत्यता की जाँच जैसी चीजों के लिए वैसे भी जावास्क्रिप्ट का उपयोग किया जाएगा, तो क्यों एक पैरामीटर में तारीख का उपयोग करने के लिए तैयार फ़ॉर्मेट नहीं।

तो फिर तुम कि स्ट्रिंग से "2008-05-20" में बदल सकते हैं दिनांक वस्तु में कोई प्रॉपर्टी संपादक रजिस्टर करने के लिए की जरूरत है। जो आप लेकिन आपको अपने नियंत्रक में onBind विधि ओवरराइड कर सकते हैं, मैं: वर्ष, माह, दिन और तारीख की जाँच

+0

उत्तर के लिए धन्यवाद। यह एक अच्छा विचार है। लेकिन सर्वर पक्ष पर ऐसा करने का कोई तरीका है? – axk

0

तो मैं अपने आदेश वस्तु में तीन क्षेत्रों के लिए होता है बेला कुछ कमांड वस्तु में विशेष,

dateField = new SimpleFormat("YYYY-mm-dd").parse(this.year + "-" + this.month + "-" this.day); 

या की तरह:

Calendar c = Calendar.getInstance(); 
c.set(year, month, day); 
dateField = calendar.getTime(); 

लेकिन मैं नहीं बल्कि जावास्क्रिप्ट में सत्यापन करते हैं और कुछ avai का उपयोग करेंगे करने के लिए सक्षम दिनांक पिकर घटक, वहाँ उन में से बहुत सारे हैं ...

+0

आप इन तीन क्षेत्रों को एक तिथि संपत्ति में कैसे परिवर्तित करेंगे? – axk

0

मैं इसे करने की कोशिश नहीं की है, लेकिन आप MutableDateTime in the Joda library के बंधन की कोशिश कर सकते। इसमें तीनों क्षेत्रों के लिए अलग-अलग सेटर्स और गेटर्स हैं।