Struts2框架(六)

一.国际化的概念

1.1 什么是国际化

Struts国际化是建立在java国际化的基础上,一样也是通过提供不同国家/语言环境的消息资源,然后通过ResourcreBundle加载指定的Locale对应的资源文件,再取得该资源文件中指定key对应的消息—整个过程与java国际化完全相同。

1.2 什么需要国际化

  • 程序:需要国际化
  • 数据:不需要国际化,输入什么就是什么
    比如:
    用户注册的表单,有用户名,密码这5个汉字,在zh_CN语言环境,显示的就是用户名和密码。但是在en_US语言环境,显示的就应该是username和password。这就是程序。
    用户名输入的是【张三】,密码输入的是【test】,那无论在什么语言环境都应该是是【张三】和【test】。这就是数据。

1.3 固定文本的国际化

例如:消息提示,错误提示和菜单,导航栏等等固定文本

1.3.1 创建消息资源包

一个资源包由多个文件组成,这些文件名都有命名规范:主要文件名语言代码国家代码.properties。 语言代码:由iso规定的。国家代码:有iso规定的
当文件只有主要文件名.properties时,表明它是默认资源包。浏览器会根据不同的语言环境找对应语言环境的资源包,当没有时,找默认的。
每个资源包的内容都由相同的key和对应语言环境的value组成。
比如:
message_zh_CN.properties message_zh_HK.properties message_en_US.properties

1.3.2 读取资源包文件

  • Action的国际化
    Action
    资源文件:
    资源文件

  • jsp页面国际化
    目前不用这种方式
    这里写图片描述
    使用jstl库
    这里写图片描述

    二.Struts2 中使用国际化

    2.1 Struts2使用国际化的前提

    首先,我们要知道,在Struts2中,所有的消息提示都是基于国际化的。其次,要想在Struts2中使用国际化,动作类必须继承ActionSupport类

    2.2 Struts2使用国际化

    2.2.1 配置资源包

  • 全局资源包的配置
    全局资源包的配置

  • 包范围资源包的配置
    包范围资源包
    资源包名称命名规范:package_语言代码_国家代码.properties(固定的)。以此种命名方式的资源包能被该包及其子包中的动作类访问。
    优先级:高于全局消息资源包

  • 局部消息资源包(只为动作类服务)
    局部消息资源包
    资源包名称命名规范:动作类名称语言代码国家代码.properties。以此种命名方式的资源包,只为动作类服务。
    优先级最高(就近原则)
    Struts2中资源包的搜索顺序:
    Struts2中资源包的搜索顺序

2.2.2 读取资源包内容

  • 动作类中的读取方式(实际开发中不用)
    动作类中的读取方式
  • 在页面中读取资源包内容
    直接访问jsp
    直接访问jsp

直接访问jsp
通过动作类访问jsp
 通过动作类访问jsp
自由指定读取资源包
自由指定读取资源包

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章