今天要做网站的国际化 包括页面 和 数据库层面
下午找了些网上例子 都不大能用,参考了几篇文章 综合下 终于找到个解决方案
1 配置文件 两处增加
a dispatcherServlet.xml 文件 这个就是spring-mvc.xml
<!-- 国际化文字 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="message_info" />
<property name="useCodeAsDefaultMessage" value="true" />
</bean>
b applicationContext.xml
增加
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaultLocale" value="zh_CN"></property>
</bean>
2 .控制器层面
@RequestMapping(value = "welcome", method = RequestMethod.GET)
public String welcomeNew(HttpServletRequest request, HttpServletResponse response,String locale) {
List<RevitNewEntity> hotRevitList = revitNewEntityService.getHotRevit();
request.setAttribute("hotRevitList", hotRevitList);
List<RevitAddInShowDto> nowDownList = revitNewEntityService.getDownLoadNowRevit();
request.setAttribute("nowDownList", nowDownList);
String langType = locale;
if(langType==null||langType.equals("")){
return "/index";
}else{
if (langType.equals("zh")) {
Locale locale1 = new Locale("zh", "CN");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, locale1);
} else if (langType.equals("en")) {
Locale locale1 = new Locale("en", "US");
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, locale1);
} else {
request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, LocaleContextHolder.getLocale());
}
}
return "/index";
}
3 .url 触发操作 http://localhost:8080/revitbus/welcome.html?locale=en
或者 http://localhost:8080/revitbus/welcome.html?locale=zh
4 .资源文件路径如下
title=SpringMVC
username=username
password=password
password2=password2
submit=submit
welcome=welcome
username=\u8F93\u5165\u7528\u6237\u540D\:
password=\u8F93\u5165\u5BC6\u7801\:
<%-- <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> --%>
<%-- <spring:message code="welcome"></spring:message> --%>