springmvc 国际化实例

来源:互联网 发布:局域网网络电话机 编辑:程序博客网 时间:2024/06/04 21:04

1.src文件夹下定义资源文件


文件内容示例:

zh_CN:

language.cn = \u4e2d\u6587
language.en = \u82f1\u6587

...

en_US:
language.cn = Chinese
language.en = English

...

2.spring-servlet.xml配置文件设置

<!-- 存储区域设置信息 --><bean id="localeResolver"class="org.springframework.web.servlet.i18n.SessionLocaleResolver" ><property name="defaultLocale" value="zh_CN"/></bean><!-- 国际化资源文件 --><bean id="messageSource"class="org.springframework.context.support.ReloadableResourceBundleMessageSource"><property name="basename" value="classpath:messages" /><!--messages与资源文件名字的前缀相对应  --></bean><mvc:interceptors><!--设置拦截器  --><bean id="localeChangeInterceptor"class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"><property name="paramName" value="lang" /><!-- lang是url请求时对应的参数--></bean></mvc:interceptors>
3.请求jsp页面关键内容

<%@taglib prefix="mvc" uri="http://www.springframework.org/tags/form" %><%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<a href="<%=basePath%>/lang.do?lang=zh_CN" style="color:#fff"><spring:message code="language.cn" /></a>  
<a href="<%=basePath%>/lang.do?lang=en_US" style="color:#fff"><spring:message code="language.en" /></a> 
首先jsp页面引用spring的标签库
<%@taglib prefix="mvc" uri="http://www.springframework.org/tags/form" %><%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
然后就可以用
<spring:message code="language.cn" />

显示相关内容了,language.cn与前面资源文件定义的内容相对应

4.controller类相关内容

@Controllerpublic class I18nController {    @RequestMapping(value = "/lang.do")    public String introinfo(HttpServletRequest request, Model model){           Locale locale = RequestContextUtils.getLocaleResolver(request) .resolveLocale(request);      System.out.println(locale.getLanguage());    //DynamicDataSource.setCurrentLookupKey(locale.getLanguage());      return "front/index";       } }
内容很简单就是返回一个页面,输出当前设置的语言。

5.显示页面同步骤3即可国际化显示。