配置文件:
messages_en_US.properties:
LoginPage.locale=USA
LoginPage.name=User Name
LoginPage.password=Password
LoginPage.sex=sex
LoginPage.age=age
LoginPage.login=Login
LoginPage.reset=Reset
messages.properties:
LoginPage.locale=\u4E2D\u56FD\u5927\u9646
LoginPage.name=\u7528\u6237\u540D
LoginPage.password=\u5BC6\u7801
LoginPage.sex=\u6027\u522B
LoginPage.age=\u5E74\u9F84
LoginPage.login=\u6CE8\u518C
LoginPage.reset=\u9000\u51FA
index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:directive.page
import="org.springframework.context.ApplicationContext" />
<jsp:directive.page
import="org.springframework.context.support.ClassPathXmlApplicationContext" />
<jsp:directive.page import="java.util.Locale" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户注册</title>
</head>
<body>
<%
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Locale locale = null;
if (request.getAttribute("language") == null) {
locale = Locale.CHINA;
} else {
locale = (Locale) request.getAttribute("language");
}
%>
<form action="<%=request.getContextPath()%>/login.do" method="post">
<div id="language" align="left"><a
href="<%=request.getContextPath()%>/LanguageManager?language=1">简体中文</a> <a
href="<%=request.getContextPath()%>/LanguageManager?language=3">English</a>
</div>
<table>
<tr>
<td><%=context.getMessage("LoginPage.name", null, locale)%><input
type="text" name="name" style="width: 180px" /></td>
</tr>
<tr>
<td><%=context.getMessage("LoginPage.password", null, locale)%>
<input type="password" name="password" style="width: 180px" /></td>
</tr>
<tr>
<td><%=context.getMessage("LoginPage.sex", null, locale)%>
<input type="password" name="sex" style="width: 180px" /></td>
</tr>
<tr>
<td><%=context.getMessage("LoginPage.age", null, locale)%>
<input type="password" name="age" style="width: 180px" /></td>
</tr>
<tr>
<td align="center"><input type="submit" value="<%=context.getMessage("LoginPage.login", null, locale)%>" /> <input
type="reset" value="<%=context.getMessage("LoginPage.reset", null, locale)%>" /></td>
</tr>
</table>
</form>
</body>
</html>
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 配置 messageSource-->
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
</beans>
LanguageManager.java:
package com.mr;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Locale;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 控制页面语言的切换
*/
public class LanguageManager extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String lang = request.getParameter("language");//获取参数
Locale language = null; //定义Locale对象
if(lang.equals("1")){
language = Locale.CHINA;//中文
}else{
language = Locale.US;//英文
}
request.setAttribute("language", language);
//跳转到添加页面上
RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/index.jsp");
rd.forward(request, response);
}
}