基于HttpSession的国际化实现

来源:互联网 发布:华风爱科天气数据不对 编辑:程序博客网 时间:2024/05/22 06:57

 代码:

loginForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix= "form" uri= "http://www.springframework.org/tags/form" %><%@taglib prefix= "spring" uri= "http://www.springframework.org/tags" %><!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>测试基于SessionLocaleResolver的国际化</title></head><body><!-- 用户可以选择切换语言环境 --><a href="loginForm?request_locale=zh_CN">中文</a> | <a href="loginForm?request_locale=en_US">英文</a><br/><h3><spring:message code="title"/></h3><form:form modelAttribute="user" method="post" action="login" ><table><tr><td><spring:message code="loginname"/></td><td><form:input path="loginname"/></td></tr><tr><td><spring:message code="password"/></td><td><form:input path="password"/></td></tr><tr><td><input type="submit" value="<spring:message code="submit"/>"/></td></tr></table></form:form></body></html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix= "spring" uri= "http://www.springframework.org/tags" %><!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>测试ConversionService</title></head><body><spring:message code="welcom" arguments="${requestScope.user.username}"/></body></html>

User.java

package com.bean;import java.io.Serializable;public class User implements Serializable {private String loginname;private String password;private String username;public User() {super();// TODO Auto-generated constructor stub}public String getLoginname() {return loginname;}public void setLoginname(String loginname) {this.loginname = loginname;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}@Overridepublic String toString() {// TODO Auto-generated method stubreturn "User [loginname=" + loginname + ", password=" + password + ", username=" + username + "]";}}

UserController.java

package com.control;import java.util.Locale;import javax.servlet.http.HttpServletRequest;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import com.bean.*;import org.springframework.context.i18n.LocaleContextHolder;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.validation.annotation.Validated;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.i18n.SessionLocaleResolver;import org.springframework.web.servlet.support.RequestContext;@Controllerpublic class UserController{private static final Log logger = LogFactory.getLog(UserController.class);@RequestMapping(value="/{formName}") public String loginForm( @PathVariable String formName, String request_locale, Model model, HttpServletRequest request){System.out.println("request_locale = " + request_locale);if(request_locale != null){// 设置中文环境if(request_locale.equals("zh_CN")){Locale locale = new Locale("zh", "CN");                 request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale); }// 设置英文环境else if(request_locale.equals("en_US")){Locale locale = new Locale("en", "US");                 request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale); }// 使用之前的语言环境else {request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,LocaleContextHolder.getLocale());}      }User user = new User();model.addAttribute("user",user);// 动态跳转页面return formName;}  @RequestMapping(value="/login",method=RequestMethod.POST) public String login( @ModelAttribute @Validated User user, Model model, HttpServletRequest request) { logger.info(user); if(user.getLoginname()!=null && user.getLoginname().equals("haige") && user.getPassword()!=null && user.getPassword().equals("123456")){ //从后台代码获取国际化信息         RequestContext requestContext = new RequestContext(request);         String username = requestContext.getMessage("username");         user.setUsername(username); model.addAttribute("user", user);     return "success"; } return "error"; }}

截图:





0 0
原创粉丝点击