2010-07-16 14 views
14

क्या कोई जानता है कि मैं नीचे दिए गए उदाहरण में प्रिंट करने के लिए fieldError कैसे प्राप्त कर सकता हूं।Grails फील्ड त्रुटियों को प्रदर्शित करना

एक त्रुटि के साथ प्रत्येक आइटम के लिए

, मैं कस्टम त्रुटि संदेश है कि मैं messages.properties में परिभाषित किया है क्षण यह सब करता है पर

फ़ाइल प्रिंट करना चाहते हैं प्रिंट डिफ़ॉल्ट त्रुटि कोड है

item.errors?.allErrors?.each{ 
    println it.toString() 
} 

मैंने अन्य उदाहरण देखे हैं जहां आप किसी फ़ील्ड के लिए त्रुटि कोड देख सकते हैं उदा।

it.getFieldError('title').code 

लेकिन मैं डिफ़ॉल्ट संदेश को अपने नए त्रुटि संदेश में परिवर्तित करना और प्रिंट करना चाहता हूं।

उत्तर

20

आपको संदेश स्रोत बीन, उदाहरण के लिए उपयोग की आवश्यकता है

def messageSource 

आपके नियंत्रक या सेवा में। तो फिर तुम धन्यवाद इस काम (नियंत्रक या सेवा में)

def locale = Locale.getDefault() 
for (fieldErrors in bean.errors) { 
    for (error in fieldErrors.allErrors) { 
     String message = messageSource.getMessage(error, locale) 
    } 
} 
+1

डाल डीईएफ़ messageSource के साथ संदेश पहुँच सकते हैं। item.errors? .allErrors? .each { println messageSource.getMessage (यह, शून्य) }; मैं भी एक अच्छा लिंक जो इस बेहतर http://johnrellis.blogspot.com/2010/02/retrieve-grails-domain-errors-from.html – MTH

+1

बर्ट बताते पाया इसे इस तरह प्रतीत नहीं होता 2010 से अब और अधिक सरल हो गया है। क्या कोई कारण है कि व्यक्तिगत त्रुटि ऑब्जेक्ट्स में 'संदेश' फ़ील्ड नहीं है जो एक बीन आयात करने और स्थिर विधि को कॉल करने के बजाय विशिष्ट संदेश देता है? –

संबंधित मुद्दे