资源文件:
message_en_US.properties
login.page.name=loginpage !!!
login.name=loginName
login.pwd=password
message_zh_CN.properties(需要进行转码)
login.page.name=登陆页面 !!!
login.name=用户名
login.pwd=密 码
在spring-servlet.xml 中配置如下信息:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>WEB-INF/classes/messages/message</value>
</list>
</property>
<property name="useCodeAsDefaultMessage" value="true" />
<property name="cacheSeconds">
<value>10</value>
</property>
</bean>
WEB-INF/classes/messages/message:表示在 WEB-INF/classes/messages/ 文件夹下面 message_zh_CN.properties,message_en_US.properties,。。。等等文件
配置I18N拦截器:
<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>
一定要配置成拦截器的形式,不能直接就写成:
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
<!-- 定义本地化处理器 -->
<!--基于session-->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
<!--
基于cookie
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
基于请求
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver"></bean>
-->
<!-- 定义注解URL映射处理器 ,所有的请求映射必须关联本地化拦截器-->
<bean id="defaultUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
<property name="order">
<value>1</value>
</property>
</bean>
页面上使用:
<%@ taglib prefix='fmt' uri="http://java.sun.com/jsp/jstl/fmt"%>
<fmt:message key="login.pwd" />
或者:
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<spring:message code="login.name" />
<a href="?locale=zh_CN">简体中文</a>
<a href="?locale=en_US">English</a>