关于SpringMVC的国际化,http://www.cnblogs.com/liukemng/p/3750117.html这篇文章已经讲的很好了。它讲了有如下几种国际化方式

1:基于Http的header信息的国际化(request.getLocale())

2:基于session的国际化(设置session的SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME

3:基于COOKIE的国际化

4:基于URL的国际化    (注意上面文章的第四种方法是错误的,因为spring的bean默认是单例,不要使用实例变量来保存状态,这样一个用户改变状态,所有用户都改变状态了)

基于session的实现方式要求有个入口的URL或者没有URL中都要求加入一个LANG参数,不是很方便,有没有一种方式我想加的时候加,不相加的是有使用前面的local 。经过实践基于URL的国际化解决我的问题。

配置applicaton.xml;

    <mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors> <bean id="localeResolver" class="com.sequoiadb.util.DBaasLocaleResolver"/>

实现DBaasLocaleResolver的方法

public class DBaasLocaleResolver extends AcceptHeaderLocaleResolver {

    public Locale resolveLocale(HttpServletRequest request) {
HttpSession session=request.getSession();
Locale locale=(Locale)session.getAttribute("locale");
System.out.println("resolveLocale:"+locale.toString());
if (locale==null){
session.setAttribute("locale",request.getLocale());
return request.getLocale();
}else{
return locale;
} } public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
System.out.println("setLocale:"+locale.toString());
request.getSession().setAttribute("locale",locale);
} }

添加国际化文件

在src目录下添加properties文件,中文转码要使用native2ascii.exe工具,这个是JDK自带的。

在这里说下,上面提到的那篇文章的基于URL的国际化代码有点问题,因为如果不带locale会报空指针异常,所以我修改了逻辑,第一次根据浏览器来进行国际化所以使用了request.getLocale(), 如果url中有locale参数就返回mylocale ,这个mylocale对象的构造在哪调我也不太清楚

唯一的bug就是你的locale参数填写错误也会默认使用浏览器来进行国际化,而不是使用上一次的locale。

SpringMVC的国际化的更多相关文章

  1. springMVC项目国际化(i18n)实现方法

    SpringMVC项目国际化(i18n)实现方法 按照作息规律,每周五晚必须是分享知识的时间\(^o^)/~,这周讲点儿啥呢,项目需要逼格,咱们国际化吧(* ̄rǒ ̄)~,项目中碰到这类需求的童鞋可能并 ...

  2. SpringMVC实现国际化过程中所遇问题

    前言:在利用SpringMVC实现国际化的过程中,看似简单,实则还是遇到了一些小问题,现在笔者对所遇问题总结如下. 注:笔者所用的编辑器为Intellij IEDA 14.1.7版本 1.国际化资源文 ...

  3. 一起学SpringMVC之国际化

    随着网络的发展,在Web开发中,系统的国际化需求已经变得非常的普遍.本文主要讲解SpringMVC框架对多语言的支持,仅供学习分享使用,如有不足之处,还请指正. 什么是国际化? 国际化(interna ...

  4. springMVC之国际化

    1.工程结构 2.jar包 3.配置文件spring-config.xml,springMVC配置文件 <?xml version="1.0" encoding=" ...

  5. Java SpringMVC实现国际化整合案例分析(i18n)

    所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语.英语等.下面我将以具体的实例来举例说明: (1)新建动态Javaweb项目,并导入几个SpringMVC必需的 ...

  6. SpringMVC 资源国际化实现以及常见问题

    资源国际化可以很方便的实现web项目语言的切换,解决了web项目按需显示不同语言界面的问题. SpringMVC 的资源国际化基于JDK的java.util.ResourceBundle实现,经过Sp ...

  7. Java SpringMVC实现国际化整合案例分析(i18n) 专题

    所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语.英语等.下面我将以具体的实例来举例说明: (1)新建动态Javaweb项目,并导入几个SpringMVC必需的 ...

  8. 转-SpringMVC——之 国际化

    原文地址:http://www.cnblogs.com/liukemng/p/3750117.html 在系列(7)中我们讲了数据的格式化显示,Spring在做格式化展示的时候已经做了国际化处理,那么 ...

  9. springmvc 资源国际化

    <!-- 关于国际化: 1. 在页面上能够根据浏览器语言设置的情况对文本(不是内容), 时间, 数值进行本地化处理 2. 可以在 bean 中获取国际化资源文件 Locale 对应的消息 3. ...

随机推荐

  1. hbase离线定时入库shell脚本-小栗子

    #!/bin/bash #######数据类型(cdr,ims,pc,.ngn_sip)###### dir=*** ############# #原始文件地址 oripath=/bigdata/da ...

  2. while 读取文件内容

    exec < filename while read line;do echo $line done 方法1 while read line;do echo $line done<$ 方法 ...

  3. Spring Cloud之Feign客户端超时时间配置

    关于雪崩效应: 默认情况下tomcat只有一个线程去处理客户端发送的所有请求.高并发情况下,如果客户端请求都在同一接口,tomcat的所有线程池去处理,导致其他接口服务访问不了,等待. Tomcat有 ...

  4. Mysql的链接超时异常CommunicationsException

    原文是在博客上的:小重合之旅 链接如下:未经过作者同意,这里注明下. http://blog.csdn.net/bluesnail216/article/details/15810119 1,问题现象 ...

  5. JavaScript 的 async/await

    随着 Node 7 的发布,越来越多的人开始研究据说是异步编程终级解决方案的 async/await. 异步编程的最高境界,就是根本不用关心它是不是异步. async 函数就是隧道尽头的亮光,很多人认 ...

  6. java: jsp:param中文乱码

    java: jsp:param中文乱码 假如a.jsp/b.jsp文件中 a.jsp代码: 需要加入:request.setCharacterEncoding("UTF-8")  ...

  7. 将任意一个jQuery对象进行表单序列化,免除了提交请求时大量拼写表单数据的烦恼,支持键值对<name&value>格式和JSON格式。

    http://zhengxinlong.iteye.com/blog/848712 将任意一个jQuery对象进行表单序列化,免除了提交请求时大量拼写表单数据的烦恼,支持键值对<name& ...

  8. 关键字volidate和transient(转)

    Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到主内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的同一 ...

  9. codeforces 515C C. Drazil and Factorial(水题,贪心)

    题目链接: C. Drazil and Factorial time limit per test 2 seconds memory limit per test 256 megabytes inpu ...

  10. HIVE SQL JOIN

    最近总结了一下hive表关联的用法,与Postgres表关联还是有细微差别,总结在这里方便以后查看. join语法 join_table: table_reference [INNER] JOIN t ...