1、国际化时,中文properties文件需要进行如下处理,避免存在乱码问题。
eg:native2ascii -encoding GBK messages.properties messages_zh_CN.properties
2、国际化时,通过如下方式获取可以更大的提高工具类的易用性。
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames" >
<list>
<value>i18n/messages</value>
<value>i18n/messages1</value>
</list>
</property>
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/>
定义工具类ResourceUtils.java,如下:
public static String getMessage(String baseName,String messageName){
ResourceBundleMessageSource s = new ResourceBundleMessageSource();
s.setBasename("i18n/"+baseName);
String str = s.getMessage(messageName, null, locale);//locale定义在用户会话中
return str;
}
如果表现层是velocity的话,可以如下调用:
${ResourceUtils.getMessage("messages","main.title")}
其中的ResourceUtils建议在统一的Controller基类中设定到View中,方便用户调用。