以前一直看见 i18N ,现在才知道原来 i18N 就是 Internationalization,因为以 i 开头,以 N 结尾,共18个字母,也就是国际化的意思。在百度搜索主页上没有看见中英文的切换,毕竟百度在中国是为了中国人而设计的,没必要弄个英文的切换。google搜索主页上是有的,因为谷歌在中国的服务器放到了香港,所以还有繁体切换。这是怎么做到的呢?其实原理很简单,用Struts2很容易实现的。以实现中英文切换为例做一下说明:

第一步:在src目录下添加两个资源文件,命名方式很重要的。格式:baseName_language_country.properties。还有两种命名方式,都可以的,这个不用过多研究。比如,实现中英文切换我们要添加 resource_zh_CN.properties 和 resource_en_US.properties。然后将各个key-value对添加到这两个文件中,key字段一定要统一。如:

其中,value值可以使用占位符,比如:你好{0},至于怎么传参数,稍后再解释。

第二步:配置struts.properties文件,这个文件也是放在src目录下的。

第一个键值对是为了告诉程序,国际化资源文件是loginResource开头命名的资源文件。

到这里其实配置就算完事儿了,接下来就是在各个地方使用。

(1)在jsp中使用。举两个例子。

还可以输出带占位符的信息。如,有一个 login.welcome = 你好{0},那么可以用下面这种方式来显示:

(2)在Action中使用。举个例子:

getText("login.username");

还可以使用带占位符的信息。如,有一个 login.welcome = 你好{0},那么可以用下面这种方式来显示:

String params[] = {"张三"};

String welcome = getText("login.welcome", params);

第三步,实现在jsp页面中的中英文切换。

index.jsp中主要部分代码如下:

中文

English

主要看前两行代码,lang.action其实就是一个实现页面转换的Action,没有什么实质性的内容,随便定义一个HelloAction.java,在execute()方法中返回个success就行了。url中的这个参数 request_locale会被 i18n 拦截器读取,然后根据这个值设置语言环境。 i18n 拦截器是struts中default里面自带的拦截器。

struts.xml配置如下:

/success.jsp

/index.jsp

/index.jsp

/regist.jsp

/index.jsp

哦了,基本完成了,接下来就是看效果啦。运行一下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

struts国际化java_Struts2 的国际化实现方式示例相关推荐

  1. struts学习笔记三-国际化

    在程序设计领域,人们把能够在无需改写有关代码的前提下,让开发出来的应用程序能够支持多种语言和数据格式的技术称为国际化技术. 国际化简称为 i18n,根据internationalization简化而来 ...

  2. 在Struts 2.0中国际化(i18n)您的应用程序

    国际化是商业系统中不可或缺的一部分,所以无论您学习的是什么Web框架,它都是必须掌握的技能. 其实,Struts 1.x在此部分已经做得相当不错了.它极大地简化了我们程序员在做国际化时所需的工作,例如 ...

  3. MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三

    前面的文章介绍了MyBatis多参数传递的注解.参数默认命名等方式,今天介绍Map的方式.仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://d ...

  4. vue自定义组件是.vue还是html,Vue自定义组件的四种方式示例详解

    四种组件定义方式都存在以下共性(血泪史) 规则: 1.组件只能有一个根标签 2.记住两个词全局和局部 3.组件名称命名中'-小写字母'相当于大写英文字母(hello-com 相当于 helloCom) ...

  5. html语言闪烁特效代码,css3 实现文字闪烁效果的三种方式示例代码

    1.通过改变透明度来实现文字的渐变闪烁,效果图: 文字闪烁 星星之火可以燎原 .myclass{ letter-spacing:5px;/*字间距*/ color: red; font-weight: ...

  6. java国际化程序_Java 国际化标准程序实现

    国际化程序实现 所谓的国家化应用指的就是根据当前的语言环境读取指定的语言资源文件. 如果要想实现国际化的操作,那么首先要解决的问题就是如何读取资源文件的问题:所谓的资源文件 就是指文件后缀名称为:&q ...

  7. python创建多线程_Python 多线程,threading模块,创建子线程的两种方式示例

    本文实例讲述了Python 多线程,threading模块,创建子线程的两种方式.分享给大家供大家参考,具体如下: GIL(全局解释器锁)是C语言版本的Python解释器中专有的,GIL的存在让多线程 ...

  8. python字典对象的方法返回字典的值列表_python对象转字典的两种实现方式示例

    本文实例讲述了python对象转字典的两种实现方式.分享给大家供大家参考,具体如下: 一. 方便但不完美的__dict__ 对象转字典用到的方法为__dict__. 比如对象对象a的属性a.name= ...

  9. 软件的国际化、Jstl国际化标签

    软件的国际化: 软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 一.国际化 软件实现国际化,需具备哪些特征: 1.对于程 ...

最新文章

  1. Leader每天996,绩效被打C!CTO说,团队带不好,原因只有一个
  2. Android4.0添加java层服务
  3. 蓄电池充放电试验培训课件
  4. flume案例-flume级联-配置文件编写
  5. iPhone走马灯控件实现
  6. 解决org.springframework.web.multipart.MaxUploadSizeExceededException报错问题
  7. 传感器工作原理_光电式速度传感器的工作原理
  8. [图论]最短路计数(spfa)
  9. Mysql索引会失效的几种情况
  10. 【云安全课程】云平台使用安全
  11. win10安装 Ruby on Rails 问题记录
  12. 基于STM32MINI板步进电机程序(有代码)
  13. Android ViewGroup介绍+实例
  14. set工具集的基础使用
  15. 《大话核心网》借鉴一二:科普类文章的写作思路
  16. 前后端分离整合阿里云OSS图片上传功能
  17. 【管理篇 / 诊断】❀ 01. 了解防火墙的性能参数 ❀ FortiGate 防火墙
  18. android新浪微博改进版
  19. 编译64位Detours(其他vs版本同理)
  20. 使用Qt二次开发周立功CAN(一)

热门文章

  1. linux执行jmeter脚本解决响应数据为空
  2. 前后端分离的思考与实践(六)
  3. template模板函数
  4. 纯css实现div中未知尺寸图片的垂直居中
  5. 前端性能优化不完全手册 【已更新至React、原生JS懒加载和Nginx负载均衡】
  6. CentOS依赖包查找工具(https://centos.pkgs.org)
  7. 读书笔记《程序员修炼之道》
  8. 软件设计原则和方法通俗理解
  9. OSPF 传播默认路由
  10. 随记:Linux下修改网络配置