struts2-国际化

struts2-国际化实现中英文切换

  • struts2 国际化的原理
  • struts2 的实现

  1. struts2 国际化的原理(1)

    国际化资源文件:用不同国家的语言描述相同的信息,并放在各自对应的.properties属性文件中,
    程序根据运行时环境决定加载哪个文件。
    国际化主要通过以下类完成:
    java.utilLocale:对应一个特定的国家/区域、语言环境。
    java.util.ResourceBundle:用于加载一个资源包。
    118nInterceptor:struts2所提供的国际化拦截器,负责处理LocaIe相关信息


    国际化流程程序得到当前运行环境的国家/区域、语言环境并存放于LocaIe,ResourceBundIe根据LocaIe中信息自动搜索对应的国际化资源文件并加载。当某个Action被执行前,118n1nterceptor负责检测Locale相关信息来寻找对应的国际化资源


    struts2默认的国际化资源文件:org.apache.Struts2.struts-messages.properties:主要包括token/tokensession拦截器使用时发生重复提交的提示信息、文件上传出错提示信息等。
    com.opensmphony.xwork2.xwork-messages.properties:Action执行过程中夷生错误提示信息和类型转换出错信息等。
    “struts2没有提供中文国际资源文件,需要自己添加全局国际化资源文件。聚另外i18n拦截器对“.action"之外的请求失效,因为struts2中拦截器只能拦截“.action’结尾的请求。

  1. struts2 的实现
    1. 编写及配置国际化的源文件
      1. 国际化源文件的命名规则
      2. 国际化的编写
      3. 国际化的配置
    2. 调用国际化
    • 国际化源文件的命名规则

      为了实现国际化,必须先提供程序所需的资源文件(key-value),如: username=用户名
      资源文件的命名可以有以下三种形式:
      baseName_language_country.properties
      baseName_language.properties
      baseName.properties
      其中baseName是资源文件的基本名,用户可以自由定义。而
      language和country都不是可以随便定义的,必须是Java所支持的语言和国家。
      如:
      创建中文和英语国际化,那么资源文件名称为:
      globalMessages_zh_CN.properties
      globalMessages_en_US.properties
      其中globalMessages为基本名。
    • 国际化的编写(key-val)

      创建这俩个文件,需要放在WEB-INF/classse下或src下
	(1)globalMessages_zh_CN.properties
		uname=\u7528\u6237\u540D
		upwd=\u5BC6\u7801
		logbtn=\u767B\u5F55

	(2)globalMessages_en_US.properties
		uname=Logon
		upwd=password
		logbtn=Login On
    • 国际化的配置

      struts2国际化的配置有俩种方法
  1. struts2.xml中直接设置
    < constant name=“struts.custom.i18n.resources” value=“globalMessages”>< /constant>
    PS:这里的value是之前globalMessages_en_US.properties的前面一节
  2. struts.properties中也能设置
    struts.custom.i18n.resources=globalMessages
    • 调用国际化

      如:
      <s:text name=“uname”></s:text>
      <s:text name=“upwd”></s:text>
      当然还有更多的方法,多的就不说了,直接甩个连接吧:点这么么哒

咳咳 最后还有一个疑点到底怎么转换对吧…我这说一下步骤

我们需要跳往后台去才会经过struts2的拦截器这样才会获得数据(可直接使用a标签进行跳转,跳往一个没有任何处理的action并且返回到当前页面,
例如:
< a href=“text_textRequestMethod.action?request_locale=zh_CN”>中文< /a>)跳往什么语言只要改后面的参数即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值