Struts2国际化
来源:互联网 发布:python分布式读取 编辑:程序博客网 时间:2024/06/07 21:51
应用程序国际化
要用Struts实现国际化和本地化,首先要定义资源文件的名称,这个文件会包含用默认语言编写的会在程序中出现的所有消息。这些消息以”键-值“对的形式存储,如下:
error.validation.localtion= The entered location is invalid
当对一个应用程序进行国际化处理时,所要用的各种语言版本的”标签“信息应该存放在不同的属性文件中,每一个这样的文件对应一种语言版本。所有属性文件合在一起称为资源包(ResourceBundle)。
属性文件的命名格式可分为以下两种:
a)文件名前缀.properties
b)文件名前缀_语言种类.properties
文件名后缀必须是properties,前缀可自由书写,其中语言种类字段必须是有效的ISO语言代码。
如何实现应用程序国际化
默认名:基名.properties
配置全局资源与输出国际化信息
1、准备资源文件
2、在struts.xml中使用struts.custom.i18n.resources常量即可加载全局资源文件
<constantname="struts.custom.i18n.resources"
value="cn.itcast.i18n.resource" />
resource为资源文件的基本名。
3、在jsp页面获取国际化的资源文件的信息
使用text标签:用来显示一条国际化消息的数据标签.相当于从property
标签调用getText方法.该标签包含如下属性:
* name:用来检索消息的键
*var:用来引用压入 ContextMap栈的值的变量名
* 可以通过 param子标签向 text标签传递参数
<s:text name="item.username"/>
全局资源文件中含有占位符
使用text标签传递参数:
资源文件的信息
item.test={0},欢迎来到xxxx{1}
jsp页面
<s:text name="item.test">
<s:param>用户名</s:param> {0}
<s:param>密码</s:param> {1}
</s:text>
输出结果:
用户名,欢迎来到xxxx密码
在action中获取资源文件的信息
ActionSupport类实现了TextProvider接口,该接口负责提供对各种资源包和它们的底层文本消息的访问机制.
当调用getText()方法时, 它将按以下顺序搜索相关的属性文件.
Action类的属性文件:该文件的名字与相关的动作类的名字一样,并且和那个动作类存放在同一个目录下
动作类所实现的各个接口的属性文件
动作类的各个父类的属性文件
动作类的各个父类所实现的各个接口的属性文件
如果动作类实现了ModelDriven接口, Struts将调用getModel()方法并从模型对象的类开始沿着类的继承关系进行一次上溯搜索
默认的包的属性文件
继承关系中的下个父包里的资源包
国际化—JSP中直接访问某个资源文件
i18n 标签:用来加载一个自定义的 ResourceBundle.不用做任何配置
name:将被加载的资源集的java完全限定名
<s:i18n name=“resource">
<s:text name=“item.username”/>
</s:i18n>
resource为类路径下资源文件的基本名。
如果要访问的资源文件在类路径的某个包下,可以这样访问:
<s:i18n name=“cn.itcast.i18n.resource">
<s:text name=“item.test">
<s:param>小张</s:param>
</s:text>
</s:i18n>
上面访问cn.itcast.i18n包下基本名为resource的资源文件。
使用 native2ascii 程序转换字符编码
native2ascii -encoding gb2312 源文件 目标文件.properites
native2ascii -encoding gb2312 test_cn_backup.txt test_zh_CN.properites
- Struts2国际化
- struts2 国际化
- struts2国际化
- Struts2国际化
- Struts2国际化
- struts2 国际化
- struts2 国际化
- struts2国际化
- struts2国际化
- struts2 国际化
- struts2国际化
- struts2国际化
- struts2 国际化
- Struts2国际化
- Struts2国际化
- struts2国际化
- struts2国际化
- struts2 国际化
- 【深入浅出Objective-C】8.2数组(NSArray)和集合(NSSet)
- Python学习笔记(八)异常
- 使用bower安装angular-ui-router时release目录为空
- TSX之有限事务内存,TSX之锁消除技术 和 lock free 编程之比较(有效总结)
- 全网视频网站破解序言
- Struts2国际化
- the most right digit of N^N.
- JNDI 与 EJB
- iOS Dev (37) iOS5、iOS6和iOS7中引入的主要变化
- codeforces Word
- 初创公司创始人和员工间的最常见的矛盾是什么?如何解决?
- node.js的事件机制
- Hadoop到底能做什么?怎么用hadoop? 与 R语言简介 以及 MapReduce
- hadoop中使用MapReduce编程实例