您现在的位置: 主页 > 上位机技术 > JAVA > Java实现国际化的两种方式
本文所属标签:
为本文创立个标签吧:

Java实现国际化的两种方式

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-07-23 

【IT168 技术】目前,公司中很多项目需要国际化的实现,现在的实现方式是通过JS替换显示的方法,切换语言的过程造成了中英文语言的闪烁出现,带来极其不好的用户体验。另外,使用JS替换的方法配置的Json格式的配置文件,不易于读写,造成了开发不同模块同事写入文件时候的冲突,和JS加载对于其他JS加载造成各种意想不到的bug,给开发人员造成了极大的痛苦,故本文基于Struts2和SpringMVC两种方式,简单阐述Struts2和SpringMVC两种国际化的实现。

文章结构

一、使用Struts2方式实现国际化

1、实现原理

1-1、源码注释

1-2、流程图

2、环境搭建

2-1、新建一个动态Web工程

2-2、当前src目录下添加struts2的配置文件

2-3、加入struts2运行所依赖的jar包

2-4、添加国际化资源文件

3、创建Action类及配置struts2.xml

3-1、Action类

3-2、struts2.xml

3-3、Jsp页面

4、实现效果

二、使用SpringMVC方式实现国际化

1、实现原理

2、工程结构

3、目录详解

4、实现展示

总结

一、使用Struts2的方式实现国际化

1、实现原理

Struts 2国际化是建立在Java国际化的基础之上,一样也是通过提供不同国家/语言环境的消息资源,然后通过ResourceBundle加载指定Locale对应的资源文件,再取得该资源文件中指定key对应的消息---整个过程与Java程序的国际化完全相同,只是Struts2框架对Java程序国际化进行了进一步封装,从而简化了应用程序的国际化。

下面通过源码注释和流程图详细说明国际化实现原理。

1-1源码注释

1-2流程图

根据请求参数中获取的local对象,判断local对象是否为空,若不为空,将获取的local字符串保存到session中,若为空,则从session中获取session中保存的local,若session 中获取的local为空,则从请求消息头中获取local对象, 最后,将local对象保存到值栈的Map栈中。

2、Struts2环境的搭建

2-1新建一个动态web工程

在web.xml中加入struts2的核心filter,可参见struts2官方例子中的struts-2.3.15.3appsstruts2-blankWEB-INFweb.xml复制。

2-2当前src目录下添加struts2的配置文件

可复制struts-2.3.15.3appsstruts2-blankWEB-INFsrcjavastruts.xml

2-3加入struts2运行所依赖的jar包

2-4添加国际化资源文件

文件内容如下

至此,我们的准备工作就完成了。

3、创建Action类以及配置struts.xml

4、实现效果

点击前往登陆界面

切换为Engilish

二、使用SpringMVC的方式实现国际化

1、实现原理

默认情况下,SpringMVC 根据 Accept-Language 参数判断客户端的本地化类型。

当接受到请求时,SpringMVC 会在上下文中查找一个本地化解析器(LocalResolver),找到后使用它获取请求所对应的本地化类型信息。

SpringMVC 还允许装配一个动态更改本地化类型的拦截器,这样通过指定一个请求参数就可以控制单个请求的本地化类型。

2、工程结构

src下存放着中文和英文、默认语言的资源文件,显示的效果会根据Jsp页面的key值从国际豪华资源文件中寻找匹配的value值。

springDispatcherServlet-servlet.xml写入SpringMVC的相关配置。

3、目录详解

src下properties文件存放需要国际化的字段。以key-value的形式存在。

名称必须遵守 basename_国家语言码.properties格式。如i18n_zh_CN.properties。

lib下存放有关于springMVC所依赖的jar包。

WebContent下pages 文件夹名称必须springDispatcherServlet-servlet.xml

所配置的一致。

下面两个jsp页面login负责展现中英文状态的切换,success负责展现切换页面中英文状态的保持。index.jsp负责初始语言的选择。

springDispatcherServlet-servlet.xml是SpringMVC的配置文件。具体内容如下所示:

4、实现展示

首次打开index.jsp页面,程序会根据当前浏览器的local对象匹配相应的国际化资源文件,点击切换语言的链接,会根据链接参数重新匹配国际化资源文件,已达到语言切换的效果。

index.jsp

点击语言进入login.jsp,首次选择的是中文

再次点击English链接

可以确定中英文切换成功,而且无闪烁出现,给用户极好的体验。

接下来验证中英文状态在不同页面的保持。英文状态点击Success Page链接

切换到中文状态点击Success Page

总结

目前,Struts2和SpringMVC是比较流行的view层框架,掌握两者的特点和实现方式,可以极大的简化我们的开发,提高我们的开发效率,并且为项目带来极好的用户体验。struts2简单易用的标签,springMVC强大的注解,映射的功能,极大的解放了工程师构建前端页面的生产力,使项目的视图层结构清晰,控制层和持久化层代码的编写也更加简洁,方便。

Struts2和SpringMVC各有优势,Struts2的入口为filter,而SpringMVC的入口为Servlet,Struts2 是基于全局的配置,而SpringMVC是基于方法的。故SpringMVC要比Struts2处理更快,而SpringMVC的标签更是简化开发,故笔者比较推荐使用SpringMVC的实现方式。

个人简介

赵国欣,软件开发工程师,任职于某大型IT外资企业,主要从事JavaEE开发。



              查看评论 回复



嵌入式交流网主页 > 上位机技术 > JAVA > Java实现国际化的两种方式
 语言 实现 国际化

网站地图

围观()