在 jsp 中引入 fmt 标签库,<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>;
在配置文件中,加上:
<!-- 配置国际化资源 --> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="i18n"></property> </bean>
properties 文件的内容:
i18n.username=\u7528\u6237\u540D
在 src 下防止一个 properties 文件,该文件中的 key 是 <fmt:message key="i18n.username"> 中的 username,value 就是其映射的字符,这样实现国际化;
在页面中,加入标签 <fmt:message key="i18n.username">,服务器解析 jsp,会把其输出成 properties 文件中,其映射的字符(“用户名”);
通过超链接改变 Locale,需要配置 SessionLocaleResolver,LocaleChangeInterceptor,使用很简单,配置,然后请求带上请求参数名为 “locale” 的请求参数,就能增加/改变 Session 里的 Locale 参数,从而改变应用的本地化类型(Locale);
原理是,Spring MVC 处理 handler 请求时,都会取出 请求头里面的 Accept-Language,从而确定语言环境,而配置了 SessionLocaleResolver 和 LocaleChangeInterceptor 就会替换了原来的 LocaleResolver,增加了拦截器,如上把 Locale 参数
放进 Session,那后面的请求都会根据 Session 里面的 Locale 参数处理语言环境(如果没有改变 Session 中的 Locale 参数);