一.基于
浏览器请求的国际化实现:
首先配置我们项目的springservlet-config.xml文件添加的内容如下:
在com.demo.web.controllers包中添加GlobalController.java内容如下:
复制代码
package com.demo.web.controllers;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.support.RequestContext;
import com.demo.web.models.FormatModel;
@Controller
@RequestMapping(value = "/global")
public class GlobalController {
@RequestMapping(value="/test", method = {RequestMethod.GET})
public String test(HttpServletRequest request,Model model){
if(!model.containsAttribute("contentModel")){
//从后台代码获取国际化信息
RequestContext requestContext = new RequestContext(request);
model.addAttribute("money", requestContext.getMessage("money"));
model.addAttribute("date", requestContext.getMessage("date"));
FormatModel formatModel=new FormatModel();
formatModel.setMoney(12345.678);
formatModel.setDate(new Date());
model.addAttribute("contentModel", formatModel);
}
return "globaltest";
}
}
复制代码
这里展示模型还用系列(7)中的作为演示。
在项目中的源文件夹resources中添加messages.properties、messages_zh_CN.properties、messages_en_US.properties三个文件,其中messages.properties、messages_zh_CN.properties里面的"money", "date",为中文,messages_en_US.properties里面的为英文。
在views文件夹中添加globaltest.
jsp视图,内容如下:
复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
下面展示的是后台获取的国际化信息:
${money}
${date}
下面展示的是视图中直接绑定的国际化信息:
复制代码
运行测试:
1
更改浏览器语言顺序,刷新页面:
2
二.基于Session的国际化实现:
在项目的springservlet-config.xml文件添加的内容如下(第一种时添加的内容要保留):
更改globaltest.jsp视图为如下内容:
复制代码
<%@ page language="java" contentType="text/
html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
下面展示的是后台获取的国际化信息:
${money}
${date}
下面展示的是视图中直接绑定的国际化信息:
复制代码
更改GlobalController.java为如下内容:
复制代码
package com.demo.web.controllers;
import java.util.Date;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
imp