一路走进了死胡同,搞了好久才搞出来,记录下,死胡同啊死胡同.......
在applicationContext.xml中的配置为
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value>
</list>
</property>
</bean>
<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
<bean id="defaultUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
<property name="interceptors" ref="localeChangeInterceptor" />
<property name="order">
<value>2</value>
</property>
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean>
页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
用户名密码分别为:"admin"和"123456"
<input type="text" id="user">
<input type="password" id="passwd">
<input type="button" value="登录" ">
<spring:message code="chengang" />
<a href="change.html?locale=zh_CN">中文</a>
<a href="change.html?locale=en">英文</a>
</body>
</html>
再建立两个资源文件:
messages_en.properties chengang=Giles
messages_zh_CN.properties chengang=\u9648\u521A
最后在controller中写入:
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
@Controller
public class LocalController {
@RequestMapping(value = "/change.html", method = { RequestMethod.POST,
RequestMethod.GET })
public ModelAndView change(HttpServletRequest request, HttpServletResponse response)
throws Exception {
String locale=request.getParameter("locale");
if(locale.equals("zh_CN"))
request.getSession().setAttribute("javax.servlet.jsp.jstl.fmt.locale.session", Locale.SIMPLIFIED_CHINESE);
else
request.getSession().setAttribute("javax.servlet.jsp.jstl.fmt.locale.session", Locale.ENGLISH);
response.sendRedirect("/test.jsp");
return null;
}
}