SSH三大框架之struts2

struts2簡介:

struts2是熱門的MVC框架,三大框架(SSH)之一。它並非是struts1的升級版,它更像是WebWork的進化版。使用struts2之前必需要的步驟:

1>、下載struts2:從struts2的官網上下載struts2文件,它其實是個struts2的項目示例,我們通過它可以瞭解它的文件結構,並利用它提供的jar包,struts.xml和web.xml配置文件。

2>、給項目導入jar包:在Eclipse中新建web項目,把人家文件裏的jar複製到項目的lib目錄下

3>、配置struts.xml文件:放在項目src根目錄下,裏面的配置下面精講。查看精講

4>、配置web.xml文件:把人家的web.xml文件裏的<filter>和<filter-mapping>拷貝到自己的裏。

————————————————————————————————————————————————

一、Struts2要點總結:

























二、Struts2攔截器:

點擊打開鏈接

在Struts2中怎麼用攔截器:

1.新建一個包,裏面專門放各種攔截器的類。每個類就是一個攔截器,這個類得實現Interceptor接口。

它裏面自帶了三個方法,

init(),indestroy(),iterceptor(ActionInvocation invocation)。最後一個方法裏定義了攔截器的方法,確定你要怎麼樣攔截Action。攔截完後,如果後面還有攔截器,則把程序交給下一個攔截器。

2.寫好攔截器的方法之後,得讓程序知道啊,所以得在struts.xml文件中配置攔截器。申明攔截器,並決定在執行Action前調用相應的攔截器。

三、Struts2動態方法調用:這個博客總結得很好

試想這樣一種場景:

在一個登錄框底下,有“登錄”和“註冊”兩個按鈕。因爲這兩個動作都是操作username和password這兩個數據,所以習慣上把兩個動作的操作都放在一個Action類裏(UserAction),在該類裏分別定義login(User user)和register(User user)倆方法。

但是,問題是,我們該在struts.xml的配置文件裏怎麼寫。此時通常便有幾種方法:
1.在struts.xml的<action>標籤裏指定method。<action name="UserAction " class=" " method="login(user)">。也就是說這種<action>配置是以方法爲單位的,那我們便要寫兩組action標籤,這樣會產生太多的action。

2.在訪問鏈接後面註明方法。<form action="..UserAction!login(user)">或者<a href=..UserAction!login(user)></a>

這種方法使用之前必須得先在常量配置裏開啓動態調用的開關。

<constant name="struts.enable.DynamicMethodInvocation" value="true" /> 

3.使用通配符:

這種方法是由第一種方法演變而來,因爲當Action類裏有很多方法時,方法1則需要我們配置很多個action,這樣很麻煩,所以誕生了使用通配符的方法,它的原則是命名約定高於配置。

看個例子:

<action name="User*" class="com.cqxs.action.UserAction" method="{1}">
        <result>/{1}success.jsp</result>
</action>
但當我們除了User*類之外還有好多其他Action類時該怎麼辦。

<action name="*_*" class="com.cqxs.action.{1}Action" method="{2}">        <result>/{1}_{2}_success.jsp</result>
</action>

4.Struts2異常處理機制:

struts2的異常處理方式是在struts.xml文件中配置實現的,這就降低了代碼和異常處理的耦合性,使代碼更清晰明朗,更易維護。

 這篇博客總結得很好

5.Struts2輸入校驗:

方法A:手動寫校驗的方法(服務器端的校驗)

因爲Action類繼承了ActionSupport,我們可以重寫validate()方法,在這個方法裏寫校驗的方法。把錯誤通過addFieldError("錯誤的名字")保存下來

注意,此時validate()校驗的是這個類裏的所有方法的動作。

若我們只想校驗其中某個方法應該重寫validateXxx(),則它只會校驗xxx()方法。

我們寫了輸入校驗的方法邏輯後,當然得在頁面給用戶反饋校驗的信息啊。在struts標籤添加<s:fielderror/>,就會顯示校驗信息。

方法B:配置Struts2的內置校驗器

比如我們有個UserAction類,它繼承了ActionSupport,並且裏面有login()和regiser()兩個方法。那我們若要對登錄和註冊的輸入內容進行校驗,則要在和UserAction同一級目錄下新建一個UserAction-validation.xml。在這個文件裏我們要配置Struts2內置校驗器。

分爲:以字段配置和非字段配置。


對於輸入校驗,分爲客戶端校驗和服務器端校驗。對於一般的校驗,我們選擇運用JS等技術在客戶端校驗,因爲這樣不通過服務器,速度快且輕便。但是若有些複雜的校驗或者有安全擔憂的,我們還是在服務器端校驗比較好,因爲客戶端數據不太安全。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章