springmvc中区域信息是由区域信息解析器得到的。
private LocaleResolver localeResolver 默认会用一个AcceptHeaderLocaleResolver
自定义区域信息解析器
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.LocaleResolver;
// 自定义区域信息解析器
public class MyLocaleResolver implements LocaleResolver{
public Locale resolveLocale(HttpServletRequest request) {
String localeStr = request.getParameter("locale");
Locale l = null;
// 通过这个就可以实现中英文切换
if(null != localeStr && !"".equals(localeStr)){
l = new Locale(localeStr.split("-")[0], localeStr.split("-")[1]);
}else{
l = request.getLocale();
}
return l;
}
public void setLocale(HttpServletRequest request,
HttpServletResponse response, Locale locale) {
}
}
自定义区域信息解析器配置
<!-- 自定义区域信息解析器 -->
<bean id="localeResolver" class="com.atchina.MyLocaleResolver"></bean>
通过这个就可以实现中英文切换
<a href="tologinpage?locale=zh-CN">中文</a>|
<a href="tologinpage?locale=en-US">英文</a>
国际化配置信息
配置springmvc文件,配置解析国际化配置信息的类
<!-- 管理国际化资源文件 -->
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="loginpage/login"></property>
</bean>
通过 fmt 标签库获取国际化信息
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
<h1> <fmt:message key="welcomeinfo"/> </h1>
<form action="">
<fmt:message key="username"/>:<input/> <br/>
<fmt:message key="password"/>:<input/> <br/>
<input type="submit" value="<fmt:message key="loginBtn"/>"/>
</form>
</body>
</html>