Spring 输入国际化

来源:互联网 发布:淘宝设置客服 编辑:程序博客网 时间:2024/06/07 19:44

配置文件:

messages_en_US.properties:

LoginPage.locale=USALoginPage.name=User NameLoginPage.password=PasswordLoginPage.sex=sexLoginPage.age=ageLoginPage.login=LoginLoginPage.reset=Reset


 

messages.properties:

LoginPage.locale=\u4E2D\u56FD\u5927\u9646LoginPage.name=\u7528\u6237\u540DLoginPage.password=\u5BC6\u7801LoginPage.sex=\u6027\u522BLoginPage.age=\u5E74\u9F84LoginPage.login=\u6CE8\u518CLoginPage.reset=\u9000\u51FA


index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><jsp:directive.pageimport="org.springframework.context.ApplicationContext" /><jsp:directive.pageimport="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"><ahref="<%=request.getContextPath()%>/LanguageManager?language=1">简体中文</a> <ahref="<%=request.getContextPath()%>/LanguageManager?language=3">English</a></div><table><tr><td><%=context.getMessage("LoginPage.name", null, locale)%><inputtype="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)%>" /> <inputtype="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);}}