Struts2x對比Struts1x的先進

2021-04-20 15:55:57 字數 2573 閱讀 5322

筆者已經毫不懷疑struts 2x比struts 1x強大,也不辯解struts 1x與2x各自的優點,因為在我看來

struts 2x繼承了struts 1x的優秀特性,並且通過struts在專案中應用的累積,發生了不小的更適用的新功能

。下面讓我結合自己的專案應用來揭秘struts 2x的這些偉大之處。

1.首先,struts2是以webwork 2作為基礎發展出來,它具有ioc模式,在處理action過程中呼叫的方法(

「execute」方法)是不帶引數的,酷吧。

e.g.

struts1x

struts2x

public string execute()

**簡潔多了,看著真舒心。不過下面這段**看上去還真不像「execute」方法,跟普通的方法差不多。

**此處留神**  struts2x返回的物件不是actionforward而是string,對程式設計師又友善了很多。

**此處留神**  struts2x不像struts1x帶有引數actionform form,那頁面資料如何得到了,yes這是重點,

very cool,

使用struts 2.0,表單資料的輸入將變得非常方便,和普通的pojo一樣在action編寫getter和setter,然後在

jsp的ui標誌的name與其對應,在提交表單到action時,我們就可以取得其值。多完美的框架,試想不光是

action乾淨多了,struts-config.xml沒有actionform後會減少很多好,so cool。

**此處留神**  你也許要問要取得servlet api中的一些物件怎麼辦,畢竟struts2x的方法沒有那些引數。

非常好的問題,此處我們有兩種辦法,都是在全域性角度,不用每個execute逐一考慮。

1.org.apache.struts2.servletactioncontext類

當然也可以使用com.opensymphony.xwork2.actioncontext類,actioncontext.getcontext().getsession()。

以上都是靜態方法來獲得我們想要的引數,最為方便簡潔,還能通過ioc取得,這兒不多介紹。

更令人興奮的一點

struts2中宣告為public string methodname() 方法,都能通過配置來呼叫action。

public string testaction()

想想使用struts1x時,當乙個頁面有去往兩個提交方向的時候,我們使用dispatchaction時時多麼繁瑣,

struts2x已經不存在此現象。

2.看看兩者的配置

struts1.x

action

org.apache.struts.action.actionservlet

config

/web-inf/struts-config.xml

config/ivr

/web-inf/struts-config-ivr.xml

config/wap

/web-inf/struts-config-wap.xml

debug

3detail30

action

*.do

作為乙個servlet申明在工程的web.xml中,跟工程耦合比較緊密

再看看struts2.x

struts

org.apache.struts2.dispatcher.filterdispatcher

struts

/*在工程的web.xml中申明成乙個filter,再就是乙個攔截目標的配置,其他的屬性都在struts.properties

3.接著,才是更為先進的改動。曾經引以為豪的struts的tag,現在也發生了翻天覆地的變化。

struts1x

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>

<%@ taglib uri="/tags/struts-html" prefix="html" %>

<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

struts2x

<%@ taglib prefix="s" uri="/struts-tags" %>

簡潔吧,但功能呢,更為強大,它甚至可以直接支援jstl、groovy和velcity。之前不乏同仁拿struts tag比

較jstl,現在看來完全沒有必要了。

struts2x還有很多貼心的功能,之前我們頭疼的頁面多次提交問題,現在有了新標籤來處理。

struts2x的檔案上傳也值得稱道。struts2x的***那是非常的好用。validation也有不小的變化。

總之,strut的優良ruts框架的優良傳統繼續延續著……

struts2 x的基本配置

1.先配置xml struts2 org.apache.struts2.dispatcher.ng.filter.strutsprepareandexecutefilter 2.在src目錄下面建立並配置struts.xml 之前要在window preference xmlcatalog中新增 w...

Urlrewrite與Struts2 x結合使用

最近改版系統,由struts1.x公升級為struts2.x,在使用時urlrewrite這個時,直接將xml檔案及jar複製過來,然後就開始執行,但好遺憾的時,沒有起到作用,於是上網查,查到一大堆的資料,基本上都是說加多兩個配置選項,於是一樣的照抄過,所以我的web.xml檔案的配置如下 過濾器部...

Annotation對Struts2 x的支援

struts2.x如要想要使用annotation,則需要匯入asm 3.3.jar asm commons 3.3.jar和struts2 convention plugin 2.3.37.jar。並且修改web.xml檔案,使其支援annotation。在web.xml檔案裡的filter元素裡...