Недавно столкнулся с такой проблемой - веб-приложение на Spring 2.5, для локализации используется подобная конфигурация:
| Код | <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>messages</value> </list> </property> </bean> <!-- Declare the Interceptor --> <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> <property name="paramName" value="locale"/> </bean>
<!-- Declare the Resolver --> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
|
ну и на jsp выводится потом локализованное сообщение при помощи <spring:message /> тега. Все работает хорошо, но только если messages.properties сохранен в ISO-8859-1. Если сохранить его в UTF-8, то потом все перестает работать - вылетает эксепшн типа
| Код | javax.servlet.jsp.JspTagException: No message found under code 'index.hello' for locale 'ru'. org.springframework.web.servlet.tags.MessageTag.doStartTagInternal(MessageTag.java:183) org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:77) org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspx_meth_spring_005fmessage_005f0(index_jsp.java:98) org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:69) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) ......
|
Вероятно где-то надо указать, что файлы properties лежат именно в юникоде и spring'у читать их надо исходя из этого... Кто сталкивался с подобным - подскажите пожалуйста. |