`

Struts2教程10:国际化

    博客分类:
  • Java
阅读更多
FROM:http://www.blogjava.net/nokiaguy/archive/2008/05/20/201675.html
国际化的作用就是根据不同国家的用户在访问Web或其他类型的程序时,将各种信息以本地的常用形式显示出来,如界面信息在中国,就会显示中文信息,在以英文为主的国家里,就会显示英文信息。还有就是一些信息的格式,如日期格式等。

从属性文件中获得字符串信息是国际化的基本应用。在Struts2中使用的属性文件就是Java属性文件,扩展名为properties。在Struts2中的属性文件可以有很多默认的位置,Struts2可按如下的顺序(或步骤)来定位属性文件:

    1. ActionClass.properties:属性文件名和动作类同名。Struts2会首先查询与当前访问的动作类同名,并且和ActionClass.class在同一个目录下的属性文件。

2. BaseClass.properties:BaseClass表示动作类的基类。所有动作类都会查找Object.properties文件(因为Object是所有Java类的基类),但要注意的是Object.properties文件可不能放到当前动作类的目录中,由于Object在java.lang包中,因此,Object.properties要放到jdk包的java"lang目录中。而对于ActionSupport.properties文件,当然也不能放到动作类的当前目录中,由于ActionSupport类中com.opensymphony.xwork2名中,因此,需要将ActionSupport.properties文件放到xwork2.jar包中的com\opensymphony\xwork2目录中,由于放到jar文件中不太方便,因此,可以使一个和当前动作类在一个目录的类先继承ActionSupport,然后所有的动作类都继承于这个类。代码如下:


public class MyActionSupport extends ActionSupport
{
    ... ...
}
public class ActionClass extends MyActionSupport
{
    ... ...
}


这样的话,只要存在一个MyActionSupport.properties,在当前目录下的所有动作类都会读取这个文件。

3. Interface.properties:这类文件和BaseClass.properties类似,Interface表示动作类实现的接口。

4. 如果动作类实现了ModelDriven, 那么重复第1步。

5. package.properties:大家要注意。这个文件就叫package.properties。不象Interface和BaseClass都是泛指。这个文件可以放到当前动作类的包的任何一层目录下。如当前动作类在action.test包中。那么package.properties可以放到action目录中,也可以放到action"test目录中。Struts2会从离动作类最近的位置开始查找package.properties文件。

6. 搜索il8n资源信息

7. 查找全局资源属性文件

    如下面是一个动作类


package action.test;

import org.apache.struts2.*;
import com.opensymphony.xwork2.ActionSupport;

public class Internationalizing extends ActionSupport       
{
    public String execute() throws Exception
    {
        return "forward";
    }
}


在action\test目录下有一个Internationalizing.properties文件,内容如下:

delete = 删除

save = 保存

我们可以在jsp文件中使用如下几种方法取出资源信息:

<s:property value="getText('delete')"/>

<s:text name="save" />

    3. 使用<s:il8n>标签。这个标签可以直接定位属性文件,如abc.properties在WEB-INF\classes\test目录下,内容和Internationalizing.properties一样,则可以使用如下的代码读取abc.properties的内容:


<%@ taglib prefix="s" uri="/struts-tags" %>
<s:i18n name="test.abc">
    <s:text name="save" />
    <s:text name="delete" />
</s:i18n>


当然,我们也可以使用全局的属性文件,在WEB-INF"classes目录下建立一个struts.properties文件,内容如下:

struts.custom.i18n.resources=my

在WEB-INF\classes目录下建立一个my.properties文件,当Struts2按着上述的顺序没有找到相应的属性文件时,最后就会考虑寻找全局的属性文件,因此,就会找到my.properties。

   还可以通过属性文件名来让Struts2按着客户端浏览器的语言环境来找符合某种语言的属性文件。如有三个属性文件language.properties、language_en.properties、language_zh.properties。如果客户端的语言是中文,Struts2就会读language_zh.properties,如果是英文,就会读language_en.properties。如果这两个文件的某个不存在,就会读language.properties。读者可通过IE的[工具]->[Internet]->[语言]来测试客户端浏览器的语言,如图1所示:



                                      图1




  • 大小: 25.8 KB
分享到:
评论

相关推荐

    Struts2视频教程

    - **国际化**:通过配置资源文件实现多语言支持,增强应用的可用性。 - **异常处理**:配置异常拦截器,实现全局异常捕获和处理,提升用户体验。 - **文件上传与下载**:Struts2内置了对文件上传的支持,可以轻松...

    struts 2教程资料

    8. **国际化和主题**:学习如何实现应用的多语言支持和自定义界面样式。 9. **插件使用**:根据项目需求,学习如何集成和使用Struts 2的插件,如Spring插件、Tiles插件等。 10. **最佳实践**:了解并遵循一些最佳...

    Max的Struts2教程

    9. **国际化与本地化**:Struts2支持多语言环境,通过资源包(properties文件)实现不同语言间的切换。 10. ** strut2-dojo-plugin**:这个插件允许开发者轻松地在应用中使用Dojo库,提供丰富的AJAX和UI组件。 ...

    struts八步教程:struts让我试着了解你

    6. **国际化与异常处理**:了解如何在Struts2中实现国际化,即多语言支持,以及如何配置全局异常处理。 7. **表单验证**:Struts2提供了强大的表单验证功能,可以在Action类中进行验证,也可以通过XML或者注解方式...

    Struts2——教程

    Struts2内置了对多语言的支持,可以通过资源包(properties文件)来实现界面的国际化。 十、Struts2与Spring集成 Struts2可以轻松地与Spring框架集成,实现依赖注入(DI)和面向切面编程(AOP),进一步提升代码的...

    Struts2 Design and Programming: A Tutorial.pdf

    - Struts2提供了便捷的国际化的支持,可以通过资源文件管理多语言的显示内容。 7. **Struts2与Spring的整合** - Struts2可以与Spring框架无缝集成,实现依赖注入,便于管理Action的生命周期和业务对象。 8. **...

    struts2教程.rar

    在“Struts2教程.chm”中,可能涵盖了Struts2的基础概念、配置、Action、Interceptor、Result、OGNL、国际化、异常处理、插件使用等方面的详细内容,对于初学者和进阶者都是极好的参考资料。而“打开方式.htm”可能...

    struts2教程 ppt

    6. **国际化**:详细阐述如何在Struts2中实现国际化,包括创建资源文件、配置文件以及如何在Action和JSP中使用这些资源。 7. **拦截器(Interceptors)**:讲解拦截器的概念,它是Struts2的一大特色,可以添加额外...

    详细的Struts2教程

    此外,Struts2还具有异常处理、国际化、主题和皮肤等功能,使得开发者能够更好地管理和定制应用的外观和行为。其插件体系也十分丰富,如Tiles插件用于布局管理,Struts2-dojo-plugin则提供了与Dojo JavaScript库的...

    Struts2教程DOC版

    2. **国际化与本地化**:Struts2支持多语言环境,开发者可以通过资源包(properties文件)轻松实现国际化。 3. **文件上传与下载**:Struts2提供了便捷的文件上传和下载功能,包括文件大小限制、类型检查等。 4. *...

    Struts2基础教程

    Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。...通过本教程,你将能够掌握Struts2的基础知识,进一步深入学习Struts2的拦截器、国际化、异常处理等高级特性。

    传智播客struts2教程

    学习Struts2不仅需要理解这些基本概念,还要掌握Action的生命周期、拦截器链的工作原理、国际化处理、文件上传下载等功能。此外,整合Spring框架以实现依赖注入,以及与Hibernate等ORM框架集成进行数据库操作,也是...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_6_国际化 共34页.pptx

    ### Java Struts2 国际化教程概览 #### 一、课程背景及目标 本教程旨在通过一系列详细的章节,帮助读者深入理解Struts2框架中的国际化(Internationalization,简称I18N)功能,并掌握如何在实际项目中实现多语言...

    struts2教程源代码

    6. **国际化和本地化**:Struts2提供内置的支持来处理多语言环境,你可以通过例子学习如何实现这一功能。 7. **Tiles框架集成**:Struts2可以与Tiles框架集成,用于创建可重用的页面布局。学习如何配置和使用Tiles...

    精通Struts 2:Web 2.0开发实战

    《精通Struts 2:Web 2.0开发实战》这本书是Java Web开发领域的一本经典教程,专注于Struts 2框架的应用与实践。Struts 2作为一款强大的MVC(Model-View-Controller)框架,是Java EE平台上的重要组成部分,它极大地...

    超详细Struts2教程及源代码

    day04可能会涵盖Struts2的异常处理和国际化支持。你将学习如何配置全局异常处理策略,以及如何为不同的语言提供本地化资源文件。 day05可能涉及Struts2的标签库。Struts2提供了一系列JSP标签,简化视图层的开发,如...

    struts2教程pdf清晰版

    “4 internationalization.pdf”可能会讲解Struts2的国际化支持,如何为应用提供多语言环境,包括资源文件的创建、配置和使用,以及如何在Action和JSP中调用国际化的文本。 “5 converter.pdf”涉及Struts2的转换器...

    struts2 项目教程

    可能包含动作配置、拦截器使用、结果类型、国际化、异常处理等内容。 5. **ch13**:这可能是教程中的第13章或部分,可能涉及特定主题,如高级拦截器、自定义标签、Struts2与Spring集成或者AOP(面向切面编程)等。 ...

    struts2 国际化(中英文切换 占位符)

    在Struts2中实现国际化,可以提供多语言支持,比如中英文切换,这对于全球用户来说非常关键。 首先,我们需要理解国际化的基本概念。国际化不是简单地翻译文本,而是设计一个可扩展的系统,以便能够轻松添加新的...

Global site tag (gtag.js) - Google Analytics