配置国际化做一个简单的记录,直接上代码
1、在项src目录下创建两个文件,如下
language_en_US.properties
添加代码
welcome = This is the English environment
language_zh_CN.properties
添加代码(中文用Unicode编码)
welcome = \u8fd9\u662f\u4e2d\u6587\u73af\u5883
2、在Spring-MVC.xml中添加
<!-- 定义国际化消息 -->
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="language" />
<property name="useCodeAsDefaultMessage" value="true" />
</bean>
<!-- 获取本地 -->
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="cookieName" value="language" />
<property name="cookieMaxAge" value="-1" />
<property name="defaultLocale" value="zh" />
</bean>
3、jsp中实现
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<h1>
<spring:message code="welcome"/>
</h1>
4、web.xml设置过滤器Filter
<filter>
<filter-name>Language</filter-name>
<filter-class>com.language.Language</filter-class>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>Language</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5、实现Filter
import java.io.IOException;
import java.util.Locale;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.i18n.CookieLocaleResolver;
public class Language implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// TODO Auto-generated method stub
Locale locale = request.getLocale();
String langType = locale.getLanguage();
System.out.print(langType);
if (langType.equals("zh")) {
langType = langType + "_CN";
Locale localeNew = new Locale("zh", "CN");
(new CookieLocaleResolver()).setLocale(((HttpServletRequest) request), ((HttpServletResponse) response),
localeNew);
} else if (langType.equals("en")) {
langType = langType + "_US";
Locale localeNew = new Locale("en", "US");
(new CookieLocaleResolver()).setLocale(((HttpServletRequest) request), ((HttpServletResponse) response),
localeNew);
}
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
到此结束!