每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化
首先在struts.properties文件中加入以下内容:
struts.custom.i18n.resources=messageResource
或在struts.xml中加入
<constant
name="struts.custom.i18n.resources"
value="messageResource"></constant>
资源文件的命名格式: 名称_语言代码_国家代码.
Properties
如果创建中文和英语国际化,那么资源文件名称为
messageResource_zh_CN.properties和messageResource_en_US.properties
1. jsp页面的国际化
通过使用标签<s:text
name="label.helloWorld"/>输出国际化
label.helloWorld为资源文件中定义的key
在messageResource_en_US.properties加入以下内容
label.hello=hello
{0}
label.helloWorld=hello,world
在messageResource_zh_CN.properties加入以下内容
label.hello=你好
{0}
label.helloWorld=你好,世界
(1). <s:text name="label.helloWorld"/>
<s:property
value="%{getText('label.helloWorld')}"/>
上面两个都为输出一个hello word的两种表示
<s:textfield name="name" key="label.helloWorld"/>
<s:textfield
name="name"
label="%{getText('label.helloWorld')}"/>
显示一个文本框,文本框的标题进行国际化
(2). 使用<s:i18n>标签指定从某个特定的资源文件中取数据
<s:i18n
name="messageResource">
<s:text
name="label.helloWorld"></s:text>
</s:i18n>
指定在从messageResource取资源
(3).
<s:text name="label.hello">
<s:param>callan</s:param>
</s:text>
使用带参数的资源.<s:param>可以替换label.hello=hello
{0}中的{0}
2. Action的国际化
Action的国际化主要是通过getText(String key)方法实现的
-
public
String execute()
throws
Exception {
-
-
-
-
-
-
String str1 = getText(
"label.helloWorld"
);
-
-
System.out.println(str1);
-
-
-
-
-
-
String str2 = getText(
"label.hello"
,
new
String[]{
"fjf"
});
-
-
System.out.println(str2);
-
-
-
-
-
-
List l =
new
ArrayList();
-
-
l.add(
"callan"
);
-
-
String str3 = getText(
"label.hello"
,l);
-
-
System.out.println(str3);
-
-
-
-
return
SUCCESS;
-
-
}
-
public
String execute()
throws
Exception {
-
-
-
-
-
-
String str1 = getText(
"label.helloWorld"
);
-
-
System.out.println(str1);
-
-
-
-
-
-
String str2 = getText(
"label.hello"
,
new
String[]{
"fjf"
});
-
-
System.out.println(str2);
-
-
-
-
-
-
List l =
new
ArrayList();
-
-
l.add(
"callan"
);
-
-
String str3 = getText(
"label.hello"
,l);
-
-
System.out.println(str3);
-
-
-
-
return
SUCCESS;
-
-
}
public String execute() throws Exception {
// getText(String) string为key
String str1 = getText("label.helloWorld");
System.out.println(str1);
// 带参数的
String str2 = getText("label.hello",new String[]{"fjf"});
System.out.println(str2);
// 与上一种实现一样
List l = new ArrayList();
l.add("callan");
String str3 = getText("label.hello",l);
System.out.println(str3);
return SUCCESS;
}
3.
参数化国际化
在messageResource_en_US.properties加入以下内容
userName=userName
userName.required=${getText('userName')}
is required
在messageResource_zh_CN.properties加入以下内容
userName=用户名
userName.required=${getText('userName')}
不能为空
在Action中
String str4 =
getText("userName.required");
System.out.println(str4);
userName.required=${getText('userName')}会取国际化的用户名
4. 使用校验框价时,提示信息可以国际化
<field name="userName">
<field-validator type="requiredstring">
<message
key=”userName.required”> </message>
</field-validator>
</field>
国际化资源文件分为三种级别
(1)
全局资源文件,可以被整个应该程序引用,也就是struts.custom.i18n.resources=messageResource指定的文件
(2)
包级资源文件,每个包的根目录下可以新建资源文件,仅被当前包中的类访问.文件名格式为:package_语言代码_国家代码.
(3)
Action级资源文件,仅被当前Action引用,名称为action名_语言代码_国家代码
查找顺序为从小范围到大范围, Action级优先级最大
转载:http://hi.baidu.com/83300409/blog/item/e3bc19a05c091b83471064ba.html
分享到:
相关推荐
在Struts1.0和Struts2.0中,国际化都是通过资源文件来实现的,允许开发者为不同的语言和文化定制消息、标签和文本。 **Struts1.0的国际化** 在Struts1.0中,国际化主要依赖于资源属性文件。这些文件通常命名为`...
4. **国际化支持:** 方便实现多语言应用。 5. **拦截器技术:** 可以在不修改业务代码的情况下增加或修改功能。 6. **AJAX集成:** 支持AJAX技术,提高用户体验。 #### 二、Eclipse简介 Eclipse是一款跨平台的...
4. **国际化与本地化**:展示如何在Struts2中实现多语言支持,提供不同地区的用户体验。 5. **插件和扩展**:介绍Struts2的插件系统,如Tiles、Freemarker、i18n等,以及如何自定义和集成第三方插件。 6. ** strut...
9. **国际化支持**: Struts2支持多语言环境,通过资源包(Properties文件)可以轻松实现应用程序的国际化。 10. **测试支持**: Struts2提供了一套测试工具,使得单元测试和集成测试变得更加简单,有助于确保...
9. **国际化(i18n)支持**: Struts 2.0提供了强大的国际化支持,开发者可以通过资源包(Properties文件)轻松实现多语言环境的应用。 10. **异常处理**: Struts 2.0提供了全局和局部的异常处理机制,允许开发者...
Action类通常会继承自`ActionSupport`,这个基类提供了许多内置功能,比如国际化支持和错误处理。你需要重写`execute()`方法,这是处理用户请求的实际逻辑所在。返回值决定了控制流程如何流转,例如返回`SUCCESS`...
7. **国际化支持**:Struts2.0内置了对多语言的支持,可以轻松实现应用的国际化。 8. **测试友好**:Struts2.0的Action类可以通过Mock对象进行单元测试,有助于提高代码质量。 在使用Struts2.0进行开发时,开发...
Struts 2.0 是一个功能强大的框架,为开发者提供了很多便利的功能,如自动类型转换、国际化支持等。通过上述介绍,我们可以了解到 Struts 2.0 的核心概念及其工作原理。掌握了这些基础知识后,开发者可以更轻松地...
国际化是现代Web应用不可或缺的一部分,Struts2.0通过资源文件实现了多语言的支持。开发者只需在不同的语言环境中配置对应的资源文件,即可实现界面语言的动态切换。Struts2.0还提供了参数化的国际化字符串,使得在...
- **国际化**:内置的国际化支持,可以轻松实现多语言应用。 **6. 框架生命周期** - 请求到达时,`StrutsPrepareAndExecuteFilter`过滤器会解析请求,调用Action。 - OGNL用于从请求参数到Action属性的数据绑定。 -...
10. **国际化与本地化**:Struts2支持多语言环境,通过资源文件管理不同语言的显示文本。 总的来说,"Struts2.0学习系列"会引导你逐步探索以上知识点,结合提供的安装包,你可以搭建起一个简单的Struts2.0示例项目...
9. **国际化与本地化** Struts 2.0支持多语言环境,通过资源包(Resource Bundle)管理不同语言的文本,使得应用能够适应全球用户的需求。 10. **插件系统** Struts 2.0具有强大的插件系统,可以方便地扩展其功能...
5. **国际化支持**:Struts2.0 内置了国际化(I18N)支持,可以通过配置文件轻松实现多语言版本的应用程序。 6. **与 Spring 和 Hibernate 等其他框架集成**:Struts2.0 可以很容易地与其他 Java 开发框架集成,形成...
10. **国际化与本地化**:Struts2支持多语言环境,可以通过资源文件实现不同语言的切换。 通过对源代码的学习,开发者不仅可以了解Struts2的工作流程,还能深入理解MVC模式在实际应用中的实现,从而更好地设计和...
这个都市供求信息系统全面展示了Struts2.0的使用,包括模型-视图-控制器的设计、数据库交互、用户认证、国际化支持等多个方面,为学习和实践Struts2.0提供了一个良好的平台。通过分析和重构这个项目,开发者可以深化...
Struts2.0是一个强大的Java Web应用程序框架,它基于...在实际项目中,开发者还需要熟悉Struts2的生命周期、异常处理、国际化、安全性等方面的知识,才能充分利用Struts2的优势,构建出高效、稳定、易于维护的Web应用。
`ActionSupport`提供了许多内置的功能,比如国际化支持、错误和异常处理、验证机制以及与Spring的集成等。它实现了多个接口,包括`com.opensymphony.xwork2.Action`、`com.opensymphony.xwork2.LocaleProvider`、`...
包含了Struts2.0的进阶主题,如动态方法调用(Dynamic Method Invocation,DMI)、OGNL(Object-Graph Navigation Language)表达式语言的使用、异常处理机制、国际化(Internationalization, i18n)支持以及文件上传...