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类相关内容
@Controller
public 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即可国际化显示。