SpringMVC的国际化
关于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的国际化的更多相关文章
- springMVC项目国际化(i18n)实现方法
SpringMVC项目国际化(i18n)实现方法 按照作息规律,每周五晚必须是分享知识的时间\(^o^)/~,这周讲点儿啥呢,项目需要逼格,咱们国际化吧(* ̄rǒ ̄)~,项目中碰到这类需求的童鞋可能并 ...
- SpringMVC实现国际化过程中所遇问题
前言:在利用SpringMVC实现国际化的过程中,看似简单,实则还是遇到了一些小问题,现在笔者对所遇问题总结如下. 注:笔者所用的编辑器为Intellij IEDA 14.1.7版本 1.国际化资源文 ...
- 一起学SpringMVC之国际化
随着网络的发展,在Web开发中,系统的国际化需求已经变得非常的普遍.本文主要讲解SpringMVC框架对多语言的支持,仅供学习分享使用,如有不足之处,还请指正. 什么是国际化? 国际化(interna ...
- springMVC之国际化
1.工程结构 2.jar包 3.配置文件spring-config.xml,springMVC配置文件 <?xml version="1.0" encoding=" ...
- Java SpringMVC实现国际化整合案例分析(i18n)
所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语.英语等.下面我将以具体的实例来举例说明: (1)新建动态Javaweb项目,并导入几个SpringMVC必需的 ...
- SpringMVC 资源国际化实现以及常见问题
资源国际化可以很方便的实现web项目语言的切换,解决了web项目按需显示不同语言界面的问题. SpringMVC 的资源国际化基于JDK的java.util.ResourceBundle实现,经过Sp ...
- Java SpringMVC实现国际化整合案例分析(i18n) 专题
所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语.英语等.下面我将以具体的实例来举例说明: (1)新建动态Javaweb项目,并导入几个SpringMVC必需的 ...
- 转-SpringMVC——之 国际化
原文地址:http://www.cnblogs.com/liukemng/p/3750117.html 在系列(7)中我们讲了数据的格式化显示,Spring在做格式化展示的时候已经做了国际化处理,那么 ...
- springmvc 资源国际化
<!-- 关于国际化: 1. 在页面上能够根据浏览器语言设置的情况对文本(不是内容), 时间, 数值进行本地化处理 2. 可以在 bean 中获取国际化资源文件 Locale 对应的消息 3. ...
随机推荐
- P2455 [SDOI2006]线性方程组
P2455 [SDOI2006]线性方程组 真\(\cdot\)高斯消元模板题 由于各种hack数据被造出来~码量突增~,其实也就多了二三十行 将每行系数消到最多有一个非0数 特殊情况: 在过程同时 ...
- 第三篇、javascript整数和字符串
一.整数 JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示. 转换: parseInt(..) 将某值转换成数字,不成功则NaN parseFloat ...
- Spring Cloud之搭建动态Zuul网关路由转发
传统方式将路由规则配置在配置文件中,如果路由规则发生了改变,需要重启服务器.这时候我们结合上节课内容整合SpringCloud Config分布式配置中心,实现动态路由规则. 将yml的内容粘贴到码云 ...
- Codeforces 461B Appleman and Tree:Tree dp
题目链接:http://codeforces.com/problemset/problem/461/B 题意: 给你一棵树(编号从0到n-1,0为根节点),每个节点有黑白两种颜色,其中黑色节点有k+1 ...
- 分享知识-快乐自己:Shrio 权限标签
一.验证当前用户是否为"访客",即未认证(包含未记住)的用户 <shiro:guest> Hi there! Please <a href="login ...
- 图像处理检测方法 — SIFT和SURF
0.特征与匹配方法总结汇总对比 参考网址:http://simtalk.cn/2017/08/18/%E7%89%B9%E5%BE%81%E4%B8%8E%E5%8C%B9%E9%85%8D/#ORB ...
- python3全方位教程
http://www.runoob.com/python3/python3-tutorial.html http://www.runoob.com/
- poj-2420 A Star not a Tree?(模拟退火算法)
题目链接: A Star not a Tree? Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5219 Accepte ...
- Android repo 学习参考
/*************************************************************************** * Android repo 学习参考 * 说 ...
- aac格式介绍
AAC编码后数据打包到FLV很简单. 1. FLV音频Tag格式 字节位置 意义0x08, ...