- 浏览: 55066 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
qinhu0811:
亲,能提供以下源码吗?393383316@qq.com
MenuBar加双层ViewStack构建FLEX整站导航 -
guanshubang:
JUnit -
guanshubang:
JUnit
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
国际化的作用就是根据不同国家的用户在访问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
发表评论
-
GOF以及java的23种设计模式简介
2010-01-08 20:08 1292FROM:http://fsjoy.blog.51cto.co ... -
用Spring AOP实现开发中松散耦合
2010-01-08 20:04 976FROM:http://soft.yesky.com/76/2 ... -
Hibernate过滤器的高级应用
2010-01-08 19:59 949FROM:http://developer.51cto.com ... -
Struts2教程9:实现自已的拦截器
2010-01-08 19:52 846FROM:http://www.blogjava.net/no ... -
Struts2教程8:拦截器概述
2010-01-08 19:50 767FROM:http://www.blogjava.net/no ... -
Struts2教程7:上传任意多个文件
2010-01-08 19:49 1004FROM:http://www.blogjava.net/no ... -
Struts2教程6:在Action类中获得HttpServletResponse对象的四种方法
2010-01-08 19:46 966FROM:http://www.blogjava.net/no ... -
Struts2教程5:使用Validation框架验证数据
2010-01-08 19:45 753FROM:http://www.blogjava.net/no ... -
Struts2教程4:使用validate方法验证数据
2010-01-08 19:40 890FROM:http://www.blogjava.net/no ... -
Struts2教程3:struts.xml常用配置解析
2010-01-08 19:39 1091FROM:http://www.blogjava.net/no ... -
Struts2教程2:处理一个form多个submit
2010-01-08 19:37 764FROM:http://www.blogjava.net/no ... -
Struts1.x系列教程(2):简单的数据验证
2010-01-08 19:32 997FROM:http://www.blogjava.net/no ... -
Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序
2010-01-08 19:24 849FROM:http://www.blogjava.net/no ... -
JSP语法详解
2010-01-08 19:17 818FROM:http://www.jspcn.net/htmln ... -
fckeditor 2.6 for jsp 配置
2010-01-08 19:13 1028fckeditor 2.6 for jsp 配置:转自 htt ... -
客户端表单验证框架JSValidation《用户手册》
2010-01-08 19:06 1560客户端表单验证框架JSVa ... -
Java7新特性
2010-01-07 18:30 2294Java7新特性 1.运行速度提高了,这个得益于Java7采用 ... -
java和javaw
2010-01-07 12:42 1289java命令运行你的程序时,是置程序于前台;而javaw是则置 ... -
反编译.class文件为.java文件
2010-01-07 12:20 849Mocha是第一个反编译软件. http://www.brou ... -
Eclipse不能自动编译的问题
2009-12-24 19:05 826有时会碰到Eclipse不能自动编译的问题.就算你在项目菜单里 ...
相关推荐
- **国际化**:通过配置资源文件实现多语言支持,增强应用的可用性。 - **异常处理**:配置异常拦截器,实现全局异常捕获和处理,提升用户体验。 - **文件上传与下载**:Struts2内置了对文件上传的支持,可以轻松...
8. **国际化和主题**:学习如何实现应用的多语言支持和自定义界面样式。 9. **插件使用**:根据项目需求,学习如何集成和使用Struts 2的插件,如Spring插件、Tiles插件等。 10. **最佳实践**:了解并遵循一些最佳...
9. **国际化与本地化**:Struts2支持多语言环境,通过资源包(properties文件)实现不同语言间的切换。 10. ** strut2-dojo-plugin**:这个插件允许开发者轻松地在应用中使用Dojo库,提供丰富的AJAX和UI组件。 ...
6. **国际化与异常处理**:了解如何在Struts2中实现国际化,即多语言支持,以及如何配置全局异常处理。 7. **表单验证**:Struts2提供了强大的表单验证功能,可以在Action类中进行验证,也可以通过XML或者注解方式...
Struts2内置了对多语言的支持,可以通过资源包(properties文件)来实现界面的国际化。 十、Struts2与Spring集成 Struts2可以轻松地与Spring框架集成,实现依赖注入(DI)和面向切面编程(AOP),进一步提升代码的...
- Struts2提供了便捷的国际化的支持,可以通过资源文件管理多语言的显示内容。 7. **Struts2与Spring的整合** - Struts2可以与Spring框架无缝集成,实现依赖注入,便于管理Action的生命周期和业务对象。 8. **...
在“Struts2教程.chm”中,可能涵盖了Struts2的基础概念、配置、Action、Interceptor、Result、OGNL、国际化、异常处理、插件使用等方面的详细内容,对于初学者和进阶者都是极好的参考资料。而“打开方式.htm”可能...
6. **国际化**:详细阐述如何在Struts2中实现国际化,包括创建资源文件、配置文件以及如何在Action和JSP中使用这些资源。 7. **拦截器(Interceptors)**:讲解拦截器的概念,它是Struts2的一大特色,可以添加额外...
此外,Struts2还具有异常处理、国际化、主题和皮肤等功能,使得开发者能够更好地管理和定制应用的外观和行为。其插件体系也十分丰富,如Tiles插件用于布局管理,Struts2-dojo-plugin则提供了与Dojo JavaScript库的...
2. **国际化与本地化**:Struts2支持多语言环境,开发者可以通过资源包(properties文件)轻松实现国际化。 3. **文件上传与下载**:Struts2提供了便捷的文件上传和下载功能,包括文件大小限制、类型检查等。 4. *...
Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。...通过本教程,你将能够掌握Struts2的基础知识,进一步深入学习Struts2的拦截器、国际化、异常处理等高级特性。
学习Struts2不仅需要理解这些基本概念,还要掌握Action的生命周期、拦截器链的工作原理、国际化处理、文件上传下载等功能。此外,整合Spring框架以实现依赖注入,以及与Hibernate等ORM框架集成进行数据库操作,也是...
### Java Struts2 国际化教程概览 #### 一、课程背景及目标 本教程旨在通过一系列详细的章节,帮助读者深入理解Struts2框架中的国际化(Internationalization,简称I18N)功能,并掌握如何在实际项目中实现多语言...
6. **国际化和本地化**:Struts2提供内置的支持来处理多语言环境,你可以通过例子学习如何实现这一功能。 7. **Tiles框架集成**:Struts2可以与Tiles框架集成,用于创建可重用的页面布局。学习如何配置和使用Tiles...
《精通Struts 2:Web 2.0开发实战》这本书是Java Web开发领域的一本经典教程,专注于Struts 2框架的应用与实践。Struts 2作为一款强大的MVC(Model-View-Controller)框架,是Java EE平台上的重要组成部分,它极大地...
day04可能会涵盖Struts2的异常处理和国际化支持。你将学习如何配置全局异常处理策略,以及如何为不同的语言提供本地化资源文件。 day05可能涉及Struts2的标签库。Struts2提供了一系列JSP标签,简化视图层的开发,如...
“4 internationalization.pdf”可能会讲解Struts2的国际化支持,如何为应用提供多语言环境,包括资源文件的创建、配置和使用,以及如何在Action和JSP中调用国际化的文本。 “5 converter.pdf”涉及Struts2的转换器...
可能包含动作配置、拦截器使用、结果类型、国际化、异常处理等内容。 5. **ch13**:这可能是教程中的第13章或部分,可能涉及特定主题,如高级拦截器、自定义标签、Struts2与Spring集成或者AOP(面向切面编程)等。 ...
### Struts2入门教程知识点概览 #### 一、Struts2框架简介 - **Struts2起源**:Struts2并非一个全新的Web框架,而是建立在WebWork框架设计理念之上,融合了Struts1的优点而形成的一个框架。可以说,它是Struts1与...
在Struts2中实现国际化,可以提供多语言支持,比如中英文切换,这对于全球用户来说非常关键。 首先,我们需要理解国际化的基本概念。国际化不是简单地翻译文本,而是设计一个可扩展的系统,以便能够轻松添加新的...