Struts2框架(六)

    xiaoxiao2021-12-14  22

    一.国际化的概念

    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的国际化 资源文件:

    jsp页面国际化 目前不用这种方式 使用jstl库

    二.Struts2 中使用国际化

    2.1 Struts2使用国际化的前提

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

    2.2 Struts2使用国际化

    2.2.1 配置资源包

    全局资源包的配置

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

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

    2.2.2 读取资源包内容

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

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

    转载请注明原文地址: https://ju.6miu.com/read-968777.html

    最新回复(0)