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包。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章