struts2的国际化分三种情况:前台页面的国际化,Action类中的国际化,配置文件的国际化。
首先指定全局的国际化资源文件:
在配置文件struts.xml中引入
<constant name="struts.custom.i18n.resources" value="message"></constant>(注意位置)
或
在struts.properties文件中指定如下一行:
struts.custom.i18n.resources=message
指定的国家化资源文件即为
xxx_语言_国家.properties
message_zh_CN.properties(简体中文资源文件)
message_en_US.properties(美国英语资源文件)
(1).JSP页面上的国际化(使用struts2的<s:text .../>):
<s:i18n name="message">
<s:text name="hello">
<s:param>${username}</s:param>
</s:text>
</s:i18n>
message_en_US.properties文件配置:
hello=hello world,{0}
message_zh_CN.properties文件配置:
hello=你好,{0}
(2)表单元素的Label国际化:
未国际化:
<s:textfield name="username" label="username"></s:textfield>
<s:textfield name="password" label="password"></s:textfield>
国际化后:
<s:textfield name="username" key="uname"></s:textfield>
<s:textfield name="password" key="pword"></s:textfield>
message_en_US.properties文件,配置:
uname=username
pword=password
message_zh_CN.properties文件,配置:
uname=用户名
pword=密码
(3).Action中的国际化:
未国际化:
this.addFieldError("username", "the username error!");
this.addFieldError("password", "the password error!");
国际化后:
this.addFieldError("username", "username.error");
this.addFieldError("password", "password.error");
message_en_US.properties文件配置:
username.error = the username error !
password.error = the password error!
message_zh_CN.properties文件配置:
username.error=用户名错误!
username.error=密码错误!
(4).配置文件中的国际化:
以输入校验的LoginAction-validation.xml为例:
未国际化:
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>username should not be empty!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">12</param>
<message>username should be between ${minLength} and ${maxLength}!</message>
</field-validator>
</field>
国际化后:
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message key="username.empty !"></message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">12</param>
<message key="username.size"></message>
</field-validator>
</field>
message_en_US.properties文件配置:
username.empty = the username should not be empty !
username.size = the size of username shoule be between 6 and 12 !
password.empty = the password should not be empty !
password.size = the size of password shoule be between 6 and 12 !
message_zh_CN.properties文件配置:
username.empty =用户名不能为空 !
username.size = 用户名长度在6到12 !
password.empty =密码不能为空 !
password.size = 密码长度在6到12 !
注:message_zh_CN.properties这个国际化资源文件不允许包含非西欧字符。
Java提供了一个工具来处理该文件中的中文:native2ascii,这个工具可以在%JAVA_HOME%/bin路劲下找到。
相关推荐
EXTJSTree作为一个强大的树形组件,广泛应用于各种Web应用,例如文件管理系统、组织结构展示、导航菜单等,其丰富的功能和灵活性使其成为EXTJS开发中的必备工具。通过理解并熟练运用上述知识点,开发者可以构建出...
ExtJS Tree 是一个基于JavaScript的UI组件库,主要用于构建富客户端应用中的树形结构界面。在Ext JS框架中,TreePanel是用于展示层级数据的主要组件,它可以用来展示目录结构、组织架构、文件系统等。...
ExtJS Tree是基于JavaScript的富客户端UI库ExtJS中的一个组件,用于构建可交互的树形结构。在Java环境中,我们可以结合JSON数据来动态生成这个树结构,这在Web应用中非常常见,例如用于展现层级关系的数据或者进行...
在`treedemo.rar`和`extjstree.rar`等文件中,可能包含了不同类型的树结构示例,如基本树、可编辑树、拖放树等。 2. **异步树(Asynchronous Tree)**: 异步树是一种优化加载大量数据的方法,它通过按需加载节点...
例如,在`extjstree1`这个文件中,可能包含了如何配置和使用ExtJS的`TreePanel`的示例代码或者教程。通常,这样的文件可能包括以下部分: 1. **配置树结构**:定义树的节点结构,包括节点的ID、文本、图标、子节点...
在提供的压缩包 "extjstree" 中,可能包含了实现上述功能的示例代码和资源文件,包括 HTML 页面、JavaScript 文件(可能包含 ExtJS 库和自定义脚本)、CSS 样式以及服务器端接口文件。通过分析这些文件,你可以深入...
一个关于extjs的动态树demo 好久没裸写(不用框架)过了,都不记得关闭数据连接的语句写在哪里了。 这个demo至少要你懂得一些extjs语法,否则,你会看着很费劲。 里面提供了需要的表结构和mysql驱动 ...
ExtJS 是一个强大的JavaScript库,专门用于构建富客户端应用程序,特别是那些具有复杂用户界面和数据管理功能的应用。在本示例中,我们关注的是“Extjs 树”——一种使用ExtJS实现的交互式树形组件。...