java痛苦学习之路[三]--Struts2包详解

一、使用Struts2必须配备的Jar包
Struts2.1.x终于推出正式版了,下载后按照Struts 2.0.14版进行配置,抛出异常说无法装载 (org.apache.struts2.dispatcher.multipart.MultiPartRequest),异常信息提示摘不到 org.apache.commons.fileupload.RequestContext类,搜索struts2.1.6带的所有jar包,发现RequestContext类并不在struts2-core-2.1.6.jar 中,在commons-fileupload-1.2.1.jar包中,之前struts2.0.14并不需要此包,只有在要用到上传组件的时候才需要。可能是struts2.1.6对文件上传功能的改进。因此要想正常使用struts2.1.6,至少需要如下6 个jar包:
struts2-core-2.1.6.jar
freemarker-2.3.13.jar
commons-logging-1.0.4.jar
ognl-2.6.11.jar
xwork-2.1.2.jar
commons-fileupload-1.2.1.jar
要注意的是,Struts 2.1.6的最小jar包配置比Struts2.0.14多了一个commons-fileupload-1.2.1.jar。
如果要使用Struts2的注释功能,在Struts2.0.14中只要引用了struts2-core-2.1.6.jar文件即可,而在 struts2.1.6中还需要引用struts2-convention-plugin-2.1.6.jar文件,而且注释类的包也变了(又增加了一些新的注释类),Struts2.0.14中的注释类在org.apache.struts2.config包中,而struts2.1.6的注释类在 org.apache.struts2.convention.annotation包中。除此之外,有些注释的属性名也变了,如Result注释在 struts2.0.14中有一个value属性,表示一个要转入的URL,而
Struts2.1.6的Result注释中使用location属性代替了value属性(不再有value属性了),但它们的使用方法相同。 
因此,读者在使用Struts2.1.x时要注意,这一版本与Struts2.0.x并不完全兼容(但大部分还是兼容的)。据我的经验,Struts2.1.x版本将是比较稳定的一个Struts2版本,因此,Struts1.x就是在Struts1.1版本才开始流行起来的。
以前也测试过Struts2的其他版本,经部分测试,目前Struts 2分为三个版本阶段:Struts 2.0.9及以前版本、Struts2.0.10至Struts2.0.14、Struts 2.1.x,这三类版本都不太兼容,如果确定使用struts2来开发程序,建议直接使用struts2.1.6及以后的版本,这是一个比较稳定的Struts2版本。

 
二、struts中各种jar包详解 
包含struts.jar
commons-beanutils.jar
Commons-Beanutils 这个是jakarta commons项目中的一个子项目。这个项目开发的目的是帮助开发者动态的获取/设值Java Bean的属性,同时解决每次都要写getXXX和setXXX的麻烦。
commons-digester.jar
Digester本来仅仅是Jakarta Struts中的一个工具,用于处理struts-config.xml配置文件。显然,将XML文件转换成相应的Java对象是一项很通用的功能,这个工具理应具有更广泛的用途,所以很快它就在Jakarta Commons项目(用于提供可重用的Java组件库)中有了一席之地。
在内部, Struts 使用来自于Jakarta Commons[ASF, Commons] 项目的Digester 来解析Struts配置文件。Digester 使用struts-config DTD 来校验文档的格式,并且创建文档所描述的Java对象。如果XML文件包含了非正式文档化的元素,或者以非正式文档化的方式使用了元素,Digester 将不会处理这个文件。
commons-fileupload.jar
Commons-FileUpload FileUpload 使得在你可以在应用和Servlet中容易的加入强大和高性能的文件上传能力struts中上传文件要用到。
struts的验证框架依赖以下的两个包:
commons-validator.jar
(校验方法)和校验规则。支持校验规则的和错误消息的国际化。 struts使用它对表单进行验证。
jakarta-oro.jar
Commons-EL Commons-Jexl Search Jakarta ORO Jakarta ORO一套文本处理工具,能提供perl5.0兼容的正则表达式,AWK-like正则表达式, glob表达式。还提供替换,分割,文件名过虑等功能。
struts.jar
struts核心包。
其他的一下jar包
commons-collections.jar
扩展了标准的Java Collection框架,提供了额外的Map、List 和Set实现以及多个有用的工具类库。功能比java.util.*强大。
commons-logging.jar:
Apache Commons包中的一个,包含了日志功能。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的 java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出现是一个历史的的遗留的遗憾,当初Apache极力游说Sun把log4j加入JDK1.4,然而JDK1.4项目小组已经接近发布JDK1.4产品的时间了,因此拒绝了Apache的要求,使用自己的java.util.logging,这个包的功能比log4j差的很远,性能也一般。
后来Apache就开发出来了commons-logging.jar用来兼容两个 logger。因此用commons-logging.jar写的log程序,底层的Logger是可以切换的,你可以选择 log4j,java.util.logging或者它自带的Simple Logger。不过我仍然强烈建议使用log4j,因为log4j性能很高,log输出信息时间几乎等于System.out,而处理一条log平均只需要5us。你可以在Hibernate的src目录下找到Hibernate已经为你准备好了的log4j的配置文件,你只需要到Apache 网站去下载log4j就可以了。commons-logging.jar也是必须的jar包。

你可能感兴趣的:(java痛苦学习之路[三]--Struts2包详解)