本文為原創,如需轉載,請注明作者和出處,謝謝!
Struts2.1.x終于推出正式版了,迫不急待地下了試試(讀者可以從
http://struts.apache.org/download.cgi#struts216下載)。從這個版本所帶的jar包上看豐富了很多。很多jar包的版本也有所提升。
下載后按著Struts 2.0.14版的方法進行配置,將我以前做的一些程序移植到Struts2.1.6上,啟動Tomcat,暈暈,竟然拋出異常說無法裝載org.apache.struts2.dispatcher.multipart.MultiPartRequest,看一下異常信息,提示沒找到org.apache.commons.fileupload.RequestContext類,但在struts2.0.14中并不需要這個類。于是搜索struts2.1.6帶的jar包,發現RequestContext類在commons-fileupload-1.2.1.jar包中,但struts2.0.14并沒有這個包??赡苁莝truts2.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.0.x所需要的最小jar包請讀者參閱
《Struts2教程1:第一個Struts2程序》,在這篇文章中使用了Struts2.0.11.1,該版本與Struts2.0.14類似。
如果要使用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版本。
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining