2010-09-02 10 views
11

स्प्रिंग Webflow 2.0.x के संदर्भ में ......स्प्रिंग "typemismatch" और आवश्यक फ़ील्ड

मैं यानी एक पूर्णांक पर एक स्ट्रिंग मैप करना चाहते का एक परिणाम के रूप में, प्रपत्र बाइंडिंग "typemismatches" संभाल क्षेत्र, का उपयोग करके अपनी messages.properties

typeMismatch={0} contains invalid data. 

में निम्नलिखित यह ठीक काम करता है।

समस्या यह है कि अगर typeMismatch त्रुटि "आवश्यक" पर हुई त्रुटि है तो मुझे लापता आवश्यक फ़ील्ड के लिए एक त्रुटि भी मिलती है, जो तर्कसंगत है, मुझे लगता है कि सबमिट किया गया मान कभी भी बाध्य नहीं था। ("आवश्यक" को कॉमन्स वैलिडेशन एक्सएमएल फ़ाइल में परिभाषित किया जा रहा है)

तो, मैं "XXX आवश्यक फ़ील्ड" त्रुटि संदेश नहीं देखना चाहता हूं जब फ़ील्ड केवल मिस्चैच के कारण अनुपलब्ध है। मैं इसका कैसे समाधान करूं? मैं FormAction पर initBinder() अधिभावी के बारे में सोचा लेकिन जल्दी कहीं नहीं मिला .....

आप वरीयता के क्रम में कई विकल्प हैं,
+1

इस पर कोई प्रगति? मैं वर्तमान में एक ही मुद्दे से जूझ रहा हूं। –

+0

क्या आप एक छोटा प्रोजेक्ट उदाहरण पोस्ट कर सकते हैं? –

उत्तर

1

:

  • सेट चुनिंदा संदेश typeMismatch.target.yourFieldName या typeMismatch.int में संसाधनों फ़ाइलों

  • लागू अपने आप एक समर्पित संदेश भेज सकते हैं own Validator ताकि जब पूर्णांक पार्स बाध्यकारी कदम से पहले असफल हो जायेगी

  • एक BindingErrorProcessor बनाएं जैसा यवेस वर्णित विभिन्न kind of parsing issues

+0

क्या यह दो त्रुटि संदेशों को दिखाने का मुद्दा हल करता है? – mico

+0

एक सामान्य श्रृंखला विन्यास पहले सत्यापनकर्ता है और फिर बाध्यकारी है। शायद तुम्हारा स्विच हो गया है। –

+0

सत्यापनकर्ताओं ने अपने संदेश –

2

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

अन्य विधि जिसका आप उपयोग कर सकते हैं, एक एक्सएमएल सत्यापन की आवश्यकता है, एक की आवश्यकता है और दूसरा एक मुखौटा है जो किसी विशेष नियमित अभिव्यक्ति के लिए जांच करता है। आपके मामले में यदि आपका क्षेत्र एक पूर्णांक फ़ील्ड है, तो आप जा सकते हैं और केवल संख्याओं के लिए रेगेक्स जांच के साथ एक मुखौटा कर सकते हैं। मास्क का क्रम, आवश्यक या आवश्यक, xml में मुखौटा तय करता है कि कौन सा संदेश उच्च वरीयता प्राप्त करता है।

उदाहरण के लिए:

<field property="somefield" depends="required,mask" page="2"> 
<arg key="somelabel"/> 
<var> 
    <var-name>mask</var-name> 
    <var-value>${somepattern}</var-value> 
</var> 
</field> 
संबंधित मुद्दे