2011-11-03 6 views
9

applicationContext-Service.xmlस्प्रिंग: नहीं संदेश स्थान के लिए कोड के नीचे पाया 'en_US'

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <property name="basenames"> 
     <list><value>messages</value></list> 
    </property> 
</bean> 

मैं /src/messages_en_US.properties

registerForm.passwordNotMatch=Password does not match. 

तहत messages_en_US.properties है इस की रेखा है कोड त्रुटि ला रहा है:

binding.addError(new FieldError(REGISTER_FORM, "passwordNotMatch", messageSource.getMessage("registerForm.passwordNotMatch", null, locale))); 

त्रुटि: कोड 'registerForm.passwordNotMa के तहत कोई संदेश नहीं मिला टीके 'लोकेल' en_US 'के लिए।

क्या गलत हो सकता है?

+0

'applicationContext-Service.xml' कहां घोषित किया गया है? – skaffman

उत्तर

11

काम करता है अगर आप को बदलने के लिए:

classpath:messages 

?

मुझे अनुभव था कि ReloadableResourceBundleMessageSource का उपयोग करते हुए, jsp में गुण फ़ाइल नहीं मिलेगी। basename से पहले classpath: जोड़कर मेरी समस्या हल हो गई।

वैसे भी मेरी परियोजना मैवेन द्वारा प्रबंधित की गई थी, मुझे लगता है कि आप इसे किसी भी तरह से आजमा सकते हैं।

0

मुझे एक ही समस्या थी। मैंने classpath: की कोशिश की लेकिन इससे कोई फर्क नहीं पड़ता। मेरी गुण फ़ाइल की आखिरी पंक्ति पर कैरिज रिटर्न डालने का अंत हुआ (इसलिए कर्सर अगली पंक्ति पर बैठता है, जो फ़ाइल का अंत है)।

इसके अलावा, यदि आप मेवेन का उपयोग कर रहे हैं और आप अपनी गुण फ़ाइल को इस प्रकार रखते हैं: /resources/xxxx.properties, संसाधन निर्देशिका स्वचालित रूप से आपके जेनरेट किए गए युद्ध में खींची जाती है, इसलिए classpath: आवश्यक नहीं है।

+1

सटीक होने के लिए, निर्देशिका 'PROJECT_BASE/src/main/resource/'होना चाहिए, केवल भ्रम से बचने के लिए –

-2

मुझे लगता है कि <property name="basenames"> के बजाय यह <property name="basename"> होना चाहिए।

+1

कोई फर्क नहीं पड़ता। 'setBasename()' एक 'स्ट्रिंग' स्वीकार करता है, 'setBasenames()' स्ट्रिंग की एक सरणी स्वीकार करता है। – Roman

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