相关类
ResourceBundle
Locale
MessageFormat
一、底层是如何运作的
1、如何获得当前JDK系统已经提供的国家语言的支持
Locale[] locales = Locale.getAvailableLocales();
for(Locale locale : locales)
{
//System.out.println(locale.getDisplayCountry() + " " + locale.getCountry());
System.out.println(locale.getDisplayLanguage() + " " + locale.getLanguage());
}
2、属性配置文件
命名规则:baseName_language_country.properties
如:hellofile_en_US.properties
hellofile_zh_CN.properties
例子:
hellofile_zh_CN.properties中内容:
hello=\u4F60\u597D
hellofile_en_US.properties中内容:
hello=world
例:
Locale locale = Locale.getDefault(); //获得当前默认Locale
ResourceBundle bundle = ResourceBundle.getBundle("hellofile",locale);
String value = bundle.getString("hello");
System.out.println(value);
bundle = ResourceBundle.getBundle("hellofile",Locale.US);
value = bundle.getString("hello");
System.out.println(value);
结果:
你好
world
3、
hellofile_en_US.properties中内容:
hello = world : {0}
hellofile_zh_CN.properties中内容:
hello = \u4F60\u597D : {0}
例:
Locale locale = Locale.getDefault();
ResourceBundle bundle = ResourceBundle.getBundle("hellofile",locale);
String value = bundle.getString("hello");
System.out.println(value);
String result = MessageFormat.format(value, new Object[]{"上海"}); //用上海填充{0}
System.out.println(result);
bundle = ResourceBundle.getBundle("hellofile",Locale.US);
value = bundle.getString("hello");
System.out.println(value);
result = MessageFormat.format(value, new Object[]{"北京"}); //用北京填充{0}
System.out.println(result);
二、struts2的国际化
1、页面中的国际化
(1)
<s:text name=""></s:text>
name中的值对应配置文件中的key
例:
message_zh_CN.properties中内容:
addUser = \u589e\u52a0\u7528\u6237
页面中使用:
<s:text name="addUser"></s:text>
(2)form表单中内容国际化theme属性不能为simple
例:
<s:textfield key=""></s:textfield>
(3)临时国际化
<center>
<s:i18n name="temp">
<s:text name="hello"></s:text>
</s:i18n>
</center>
配置文件:temp_zh_CN.properties
hello = \u4f60\u597d
(4)传参
<s:i18n name="temp">
<s:text name="hello">
<s:param>didi</s:param>
</s:text>
</s:i18n>
配置文件:temp_zh_CN.properties
hello =\u4F60\u597D,{0}
2、validate中的国际化
通过getText方法获得Key对应的值
例:
message_zh_CN.properties中内容:
username.invalid = \u7528\u6237\u540d\u586b\u5199\u4e0d\u6b63\u786e
validate中使用方法:
this.addActionError(this.getText("username.invalid"));
例:
message_zh_CN.properties中内容:
username.invalid = \u7528\u6237\u540d "{0}" \u586b\u5199\u4e0d\u6b63\u786e
validate中使用方法:
List list = new ArrayList();
list.add(username);
this.addActionError(this.getText("username.invalid",list));
或
this.addActionError(this.getText("username.invalid",new String[]{username}));
3、校验框架XML中的国际化
<message key=""></message>
key对应配置文件中的key
例:
校验XML中
<message key="username.xml.invalid"></message>
message_zh_CN.properties中内容:
username.xml.invalid = \u6821\u9a8c\u6846\u67b6\u63d0\u793a\u7528\u6237\u540d\u4e0d\u6b63\u786e
4、国际化资源文件的存活范围
struts2提供的各个级别的文件名命名规则
包级别:package_en_US.properties package_zh_CN.properties
类级别:class_en_US.properties (class用具体类名)
优先级:类级别>包级别>全局
原文来自:http://blog.csdn.net/dyc87112/archive/2009/02/17/3899026.aspx
转载请著名出处。
分享到:
相关推荐
Struts2支持国际化,可以为不同的语言创建不同的资源文件,用于显示错误消息。通过在配置文件中指定资源包,我们可以使错误信息根据用户的语言环境自动转换。 7、总结 Struts2作为MVC框架,提供了丰富的功能和灵活...
- **国际化支持**:Struts 2提供了强大的国际化支持,可以通过资源文件实现多语言界面。 #### 5. Struts 2的实际应用 - **表单处理**:Struts 2提供了丰富的标签库来简化表单的生成和验证。 - **异常处理**:可以...
第11章 理解国际化 240 11.1 Struts 2框架和Java i18n 241 11.1.1 使用ResourceBundle和Locale取得本地化文本 241 11.1.2 Struts 2如何解决本地Java对i18n支持的问题 243 11.2 Struts 2 i18n示例 244 11.2.1 Struts ...
根据提供的文件信息,本文将围绕“Struts2学习心得”这一主题进行展开,重点解析Struits2框架中的国际化(i18n)功能及其在实际项目中的应用方式,并结合具体的代码示例进行深入探讨。 ### Struts2简介 Struts2是...
- `<message-resources>`:配置国际化资源文件。 - `<plug-in>`:配置插件支持。 这些元素的详细配置方式和应用场景将在后续的文章中进一步探讨。 #### 五、总结 通过本文的详细介绍,我们可以看出`struts-config...
一、准备工作及实例 3 ...小结Action 14 9.使用通配符 14 10.使用0配置:ZERO Annotation 15 11.Result配置详解 15 探讨type类型: 16 Type类型值 16 作用说明 16 对应类 16 chain 16 用来处理Action链 16 ...
9.2 Struts中的国际化支持 185 9.3 text标签 188 9.4 i18n标签 191 9.5 以手动方式选择一个资源包 193 9.6 小结 195 第10章 Model Driven和Preparable拦截器 196 10.1 把动作与模型隔离开 196 10.2 Model ...
8. **国际化与本地化**:Struts支持多语言环境,通过资源文件实现文本的国际化和本地化。 9. **异常处理**:Struts提供了全局的异常处理机制,可以在`struts-config.xml`中配置错误和异常的映射,以统一处理程序...
在Struts 2.0框架中,国际化的处理得到了显著的增强,这使得开发者能够更加灵活和高效地构建多语言支持的应用程序。本文将详细解析Struts 2.0中国际化处理的关键知识点,包括其核心概念、实现步骤以及一些实用技巧。...
- **强大的插件系统**:Struts2拥有丰富的插件生态系统,支持多种扩展功能,如验证、国际化等。 - **良好的社区支持**:Struts2有一个活跃的开发者社区,可以提供及时的技术支持和资源分享。 #### 三、开发Struts2...
`struts.properties`文件用于配置Struts2框架的行为,包括国际化资源文件的位置、默认的拦截器栈等。 1. **创建struts.properties文件**:在项目的资源目录中创建此文件。 2. **配置框架行为**:根据需求配置各种...
#### 12.7 小结 通过本章的学习,我们不仅掌握了Struts2的基本开发流程,还深入了解了其与Spring框架的整合应用,以及如何处理文件上传下载、表单验证等关键问题。Struts2与Spring的结合,无疑为Java Web开发提供了...
书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...
它不仅可以对各种数据类型进行验证,还可以通过国际化的方式定制错误消息。对于Web应用开发者而言,熟练掌握这一框架可以极大地提高开发效率和代码质量。希望本文能够帮助大家更好地理解和运用Struts2校验框架。
- 解释了如何创建和配置资源文件,用于国际化和本地化支持。 **2.3 运行结果** - 展示了运行示例应用程序的结果,帮助理解整个流程的工作原理。 **2.4 本章小结** - 总结了如何从零开始构建一个简单的Struts...