springMVC项目国际化(i18n)实现方法
SpringMVC项目国际化(i18n)实现方法
按照作息规律,每周五晚必须是分享知识的时间\(^o^)/~,这周讲点儿啥呢,项目需要逼格,咱们国际化吧(* ̄rǒ ̄)~,项目中碰到这类需求的童鞋可能并不多,但偶尔用到也会比较费时间滴;-),不如驻足本帖片刻吧︿( ̄︶ ̄)︿
额,嗯~,记得一开始从事软件开发时在一个很轻量级的项目中碰到了一个貌似叼炸天的需求,什么?国际化?没听说过,不知道怎么玩儿。。。,谷歌翻帖快一周,大神们的神贴也看了许久,可就是解决不了我的项目需求,怎么办,加大神Q骚扰之~~(@^_^@)~,在正式写此文前特别要感谢“Erola”,他的原贴:http://www.cnblogs.com/liukemng/p/3750117.html,请在看本博之前先膜拜下大神的博文吧(⊙ ▽ ⊙),由于大神已经将国际化的集中用法都讲清楚了,遂,在此我会着重讲下实际开发中我所碰到的一个问题~
我们的需求其实很简单,就是客户为方便歪果仁使用他们的系统,在界面上设置两个用于语言切换的link(中文|EN),切换后当前页面功能保持不变(就是不跳转),需要的时候手动切换,默认基于语言和位置的国际化就直接pass了(切换浏览器语言位置以切换页面语言),当然也不能在每个视图解析时让每个controller都顺带切换语言逻辑,这样可行,但对写代码来说~太过冗余!
遂,比较可行的办法是基于关键字请求的页面切换,憋了老久,容我先上图哈~,如图>>>just like this to that--->
SpringMVC自身是支持(这里使用的是spring-3.2),不用单独写代码来 实现页面的语言切换,看似很靠谱,但~,请注意,由于这个项目是内网使用的不涉及到增删改,所以之前把页面都放在WEB-INF外部,就像这样:
(所有controller只做数据处理)导致的一个问题是点到其他页面后页面语言又被还原了!为这个问题翻帖搞了许久许久,一直不明白为什么,在这里我总结下:所有不经过controller视图解析的目标页面都不会应用指定的语言区域!!!,切记,这个很重要很重要。
已看过以上至理名言后,解决的办法其实很简单,在每个目标页面对应的controller里面加上一个默认的页面跳转,这样:
这样,只要切换语言,就不会出现上面提到的问题,明白以上的问题所在,以下就按部就班的配置:
首先,需要在web-context.xml里面将i18n的bean配置到拦截器内(只需看第二行),以便在每个视图解析的时候都能应用到国际化--->
1 <mvc:interceptors> 2 <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /> 3 <bean class="com.hst.core.spring.HttpCacheInterceptor"/> 4 </mvc:interceptors>
然~,在WEB-INF下面的resources内增加这两个文件:
这里是中英文切换,如果有其它语言,则每种语言都单独写一个properties语言配置文件,请注意文件的命名。
再~,在jsp页面眉头声明spring的标签库:
再~,将以前每个页面显示的中文文本的地方用spring的message标签替换:
别忘记 :每个标签内的code的值是前面properties中对应的key,回头看看properties的内容就明了~--->
如此,就差最后一步,也是最简单的一步:界面添加link,一般只需要在主jsp里面添加就可以了,位置自定哈~,告诉你个小秘密,你只需要这样就OK (~ ̄▽ ̄)~
OK~终于完成~,分享知识是快乐的,祝大家周末愉快玩儿得happyヾ(o◕∀◕)ノヾ
======小建议======
properties文件里面的中文默认只显示成Unicode编码,如有大量的文本需要添加,建议使用properties editor插件,eclipse安装此插件请参考:http://www.cnblogs.com/panie2015/p/5637847.html
转载于:https://www.cnblogs.com/funnyzpc/p/7214235.html
springMVC项目国际化(i18n)实现方法相关推荐
- 项目国际化I18N多语言切换
作为国际化的门户网站,支持多种不同的语言,以方便不同国家,不同语种的用户访问尤其重要,目前通过Vue I18n已实现中英文自由切换. 一.了解I18N 1.什么是I18N i18n(其来源是英文单词 ...
- SpringMvc国际化i18n
所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语.英语等. 下面简单说一下Springmvc下的i18n的国际化配置: 首先发下我的目录结构图: spri ...
- 介绍一个懒人创建springmvc项目的方法(二)
PS: 我是一个懒人,我懒得搭建项目连pom都不想去找,连web.xml都不想配置.所以就会想着找一些简便的办法,来适应我这种懒人. ---------------------------- 本人介绍 ...
- springmvc项目在启动完成之后执行一次方法_学习笔记21-springmvc部分源码学习
SpringMVC:请求处理流程 这几张图讲的大致都是一个东西,就是springmvc的请求处理流程: ① 用户发送请求到springmvc框架提供的DispatcherServlet 这个前端控制器 ...
- SpringMVC的国际化
关于SpringMVC的国际化,http://www.cnblogs.com/liukemng/p/3750117.html这篇文章已经讲的很好了.它讲了有如下几种国际化方式 1:基于Http的hea ...
- springmvc 项目完整示例05 日志 --log4j整合 配置 log4j属性设置 log4j 配置文件 log4j应用...
log4j 就是log for java嘛,老外都喜欢这样子,比如那个I18n ---internationalization 不就是i和n之间有18个字母... http://logging.a ...
- qt linux 国际化,多语言,配置CLion管理Qt项目国际化支持
随着Qt 6的发布,cmake也正式宣告接管qmake的工作了. 在之前的一篇博客里我介绍了如何使用cmake管理你的qt项目,不过有一点我没有讲,那就是对国际化(i18n)的处理. 今天我们就来介绍 ...
- Spring:项目国际化
前言 在我们开发 javaWEB 项目的时候,项目可能涉及到在国外部署或者应用,也有可能会有国外的用户对项目进行访问 ,那么在这种项目中,为客户展现的页面或者操作的信息就需要使用不同的语言,这就是我们 ...
- SpringBoot项目国际化
SpringBoot项目国际化 1. 创建国际化文件Resource Bundle 项目结构图: springboot项目工程详细结构 国际化文件结构图: springboot国际化文件 在Intel ...
最新文章
- 挑战极限--有本事拿.Net+SQL SERVER试试4秒极限!
- python编程基础语法-Python编程入门基础语法详解
- 全1的向量与行向量或列向量相乘,实质上是作行复制或列复制!
- Fabric学习笔记-智能合约
- 聊聊我对黑客技术的思考
- cmake指定gcc版本
- spring基础——注解注入
- m1芯片MacBook Air安装arm版MacTeX及配置
- android监控方法耗时开源库,【开源完整项目】 AndroidGodEye 监控Android数据指标
- webapi 参数的请求和接收
- android progressdialog 倒计时,自定义progressdialog——带倒计时的progressbar效果
- html倒计时样式,简单实现JS倒计时效果
- Failed to build Android - icescreem-4.0.4
- case when 效率_采用机械涡轮复合增压系统优化7.8 L柴油机的 稳态效率和排放性能...
- 2021-7-20 指针:强大而危险的灵魂【C++指针的应用---中下】(炉边小坐)
- vue自定义组件,ElementUi表单校验v-model不能即时生效的解决方法
- sugarnms如何快速实现网管软件定制开发?
- php 删除文件 unlink,php 删除文件函数unlink及删除文件夹示例
- k8s添加pod,k8常用命令,k8s删除pod
- p16panda合并concat
热门文章
- Fedora 16 正式版专题
- Linux重启命令reboot
- (原创)JS兼容性笔记(更新)
- 跌宕起伏之windows 7安装
- 安装windows 2003 R2额外域控制器时出现1168错误的解决
- (转载)大数据与企业的数据化运营
- 二维数组动态分配内存
- Java基础类库四则运算_00JAVA语法基础_四则运算 01
- java的知识点15——String基础、String类和常量池、String类常用的方法、字符串相等的判断、组合模式
- asp.net中@page指令的属性Inherits、Src、CodeBehind区别