`

Struts2.0国际化支持

阅读更多

每种框价都会有国际化的支持,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)方法实现的

Java代码 复制代码
  1. public String execute() throws Exception {   
  2.   
  3.            
  4.   
  5.          // getText(String) string为key   
  6.   
  7.          String str1 = getText( "label.helloWorld" );   
  8.   
  9.          System.out.println(str1);   
  10.   
  11.            
  12.   
  13.          // 带参数的   
  14.   
  15.          String str2 = getText( "label.hello" , new String[]{ "fjf" });   
  16.   
  17.          System.out.println(str2);   
  18.   
  19.        
  20.   
  21.          // 与上一种实现一样   
  22.   
  23.          List l = new ArrayList();   
  24.   
  25.          l.add( "callan" );   
  26.   
  27.          String str3 = getText( "label.hello" ,l);   
  28.   
  29.          System.out.println(str3);   
  30.   
  31.            
  32.   
  33.          return SUCCESS;   
  34.   
  35.      }  
Java代码 复制代码
  1. public String execute() throws Exception {   
  2.   
  3.            
  4.   
  5.          // getText(String) string为key   
  6.   
  7.          String str1 = getText( "label.helloWorld" );   
  8.   
  9.          System.out.println(str1);   
  10.   
  11.            
  12.   
  13.          // 带参数的   
  14.   
  15.          String str2 = getText( "label.hello" , new String[]{ "fjf" });   
  16.   
  17.          System.out.println(str2);   
  18.   
  19.        
  20.   
  21.          // 与上一种实现一样   
  22.   
  23.          List l = new ArrayList();   
  24.   
  25.          l.add( "callan" );   
  26.   
  27.          String str3 = getText( "label.hello" ,l);   
  28.   
  29.          System.out.println(str3);   
  30.   
  31.            
  32.   
  33.          return SUCCESS;   
  34.   
  35.      }  
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和Struts2.0中,国际化都是通过资源文件来实现的,允许开发者为不同的语言和文化定制消息、标签和文本。 **Struts1.0的国际化** 在Struts1.0中,国际化主要依赖于资源属性文件。这些文件通常命名为`...

    Eclipse struts2.0可视化开发组件

    4. **国际化支持:** 方便实现多语言应用。 5. **拦截器技术:** 可以在不修改业务代码的情况下增加或修改功能。 6. **AJAX集成:** 支持AJAX技术,提高用户体验。 #### 二、Eclipse简介 Eclipse是一款跨平台的...

    Struts2.0视频教程+struts2.0中文教程

    4. **国际化与本地化**:展示如何在Struts2中实现多语言支持,提供不同地区的用户体验。 5. **插件和扩展**:介绍Struts2的插件系统,如Tiles、Freemarker、i18n等,以及如何自定义和集成第三方插件。 6. ** strut...

    Struts2.0 Jar包

    9. **国际化支持**: Struts2支持多语言环境,通过资源包(Properties文件)可以轻松实现应用程序的国际化。 10. **测试支持**: Struts2提供了一套测试工具,使得单元测试和集成测试变得更加简单,有助于确保...

    struts 2.0

    9. **国际化(i18n)支持**: Struts 2.0提供了强大的国际化支持,开发者可以通过资源包(Properties文件)轻松实现多语言环境的应用。 10. **异常处理**: Struts 2.0提供了全局和局部的异常处理机制,允许开发者...

    Struts 2.0

    Action类通常会继承自`ActionSupport`,这个基类提供了许多内置功能,比如国际化支持和错误处理。你需要重写`execute()`方法,这是处理用户请求的实际逻辑所在。返回值决定了控制流程如何流转,例如返回`SUCCESS`...

    三大框架中文文档中的struts2.0开发手册(程序员必看)

    7. **国际化支持**:Struts2.0内置了对多语言的支持,可以轻松实现应用的国际化。 8. **测试友好**:Struts2.0的Action类可以通过Mock对象进行单元测试,有助于提高代码质量。 在使用Struts2.0进行开发时,开发...

    struts 2.0 详细配置

    Struts 2.0 是一个功能强大的框架,为开发者提供了很多便利的功能,如自动类型转换、国际化支持等。通过上述介绍,我们可以了解到 Struts 2.0 的核心概念及其工作原理。掌握了这些基础知识后,开发者可以更轻松地...

    Struts_2.0从入门到精通

    国际化是现代Web应用不可或缺的一部分,Struts2.0通过资源文件实现了多语言的支持。开发者只需在不同的语言环境中配置对应的资源文件,即可实现界面语言的动态切换。Struts2.0还提供了参数化的国际化字符串,使得在...

    sstruts2.0 struts2.0

    - **国际化**:内置的国际化支持,可以轻松实现多语言应用。 **6. 框架生命周期** - 请求到达时,`StrutsPrepareAndExecuteFilter`过滤器会解析请求,调用Action。 - OGNL用于从请求参数到Action属性的数据绑定。 -...

    Struts2.0学习系列 以及 Struts2.0安装包

    10. **国际化与本地化**:Struts2支持多语言环境,通过资源文件管理不同语言的显示文本。 总的来说,"Struts2.0学习系列"会引导你逐步探索以上知识点,结合提供的安装包,你可以搭建起一个简单的Struts2.0示例项目...

    Struts 2.0全攻略之Struts 2.0参考手册

    9. **国际化与本地化** Struts 2.0支持多语言环境,通过资源包(Resource Bundle)管理不同语言的文本,使得应用能够适应全球用户的需求。 10. **插件系统** Struts 2.0具有强大的插件系统,可以方便地扩展其功能...

    struts2.0英文文档

    5. **国际化支持**:Struts2.0 内置了国际化(I18N)支持,可以通过配置文件轻松实现多语言版本的应用程序。 6. **与 Spring 和 Hibernate 等其他框架集成**:Struts2.0 可以很容易地与其他 Java 开发框架集成,形成...

    struts2.0源代码

    10. **国际化与本地化**:Struts2支持多语言环境,可以通过资源文件实现不同语言的切换。 通过对源代码的学习,开发者不仅可以了解Struts2的工作流程,还能深入理解MVC模式在实际应用中的实现,从而更好地设计和...

    struts2.0开发的都市供求信息系统

    这个都市供求信息系统全面展示了Struts2.0的使用,包括模型-视图-控制器的设计、数据库交互、用户认证、国际化支持等多个方面,为学习和实践Struts2.0提供了一个良好的平台。通过分析和重构这个项目,开发者可以深化...

    struts2.0的基本jar包

    Struts2.0是一个强大的Java Web应用程序框架,它基于...在实际项目中,开发者还需要熟悉Struts2的生命周期、异常处理、国际化、安全性等方面的知识,才能充分利用Struts2的优势,构建出高效、稳定、易于维护的Web应用。

    Struts 2.0的Action讲解

    `ActionSupport`提供了许多内置的功能,比如国际化支持、错误和异常处理、验证机制以及与Spring的集成等。它实现了多个接口,包括`com.opensymphony.xwork2.Action`、`com.opensymphony.xwork2.LocaleProvider`、`...

    struts2.0教程合集

    包含了Struts2.0的进阶主题,如动态方法调用(Dynamic Method Invocation,DMI)、OGNL(Object-Graph Navigation Language)表达式语言的使用、异常处理机制、国际化(Internationalization, i18n)支持以及文件上传...

Global site tag (gtag.js) - Google Analytics