Struts2學習

Struts2學習筆記

概述:struts2是屬於Web層的框架,本質上,它是一個攔截器。開發Struts2的主要流程如下
    1.創建一個Action類
    2.創建Struts.xml
    3.**在web.xml中配置過濾器**  這一步極其重要,如果不配置該過濾器(org.apache.struts2.dispatcher.FilterDispatcher)將會導致無法找到項目,錯誤代碼404。

創建Action類的方式

創建Action類的方式共有三種:
1.創建一個普通類,不繼承Struts框架中相關的類,也不實現相關的接口。
2.創建一個類,並讓該類繼承Struts框架中的ActionSupport類(這種方式比較常用)
3.創建一個類,並讓該類實現Struts框架中的Action接口


struts.xml中的配置

該文件的名字不可變更,必須爲struts.xml,因爲在Struts2框架的源碼中,強制默認查詢和加載此文件,文件名不可隨意變更。除此之外,該文件的存放目錄也是固定的,務必保存在src目錄下。
在該文件中,主要配置的標籤有三個:分別是package、action、result
其中package標籤類似於Java中的包,裏面是用來存儲不同的action標籤和相應的配置信息;action標籤則是用來指定action的訪問路徑;result標籤是和action標籤成對使用,依據Action類中方法的返回值,配置去往不同的頁面或者action中。
1.package標籤:package標籤主要有三個屬性:name、extends和namespace。name屬性值是用來區分不同的Action,name屬性值不可重。extends屬性值爲”struts-default”,這是一種固定寫法,是爲了保證action類具有Action的功能,如同Servlet需要繼承HttpServlet。namespace標籤的屬性值一般默認爲”/”,因爲它需要和action標籤中的name屬性值共同構成訪問路徑。
2.action標籤:該標籤主要也有三個屬性:name、class和method。name標籤的屬性值和package標籤的namespace屬性值共同構成Action類的訪問路徑。class標籤的屬性值是該Action類的全路徑。method標籤的屬性值則是用來配置需要執行Action類的方法,而不是執行默認的execute()方法。除此之外在Action中,我們可以自己配置某方法不被攔截:

<interceptor-ref name="">
        <param name="execludeMethods">方法名1,方法名2...</param>
    </interceptor-ref>

在package標籤中,action標籤不唯一,一個package標籤可以有多個action標籤。但是每一個action標籤的name屬性值必須唯一。
3.result標籤:result標籤主要有兩個屬性,分別是name和type。name標籤的屬性值需要和該Action中的方法的返回值一樣,如果一個方法的返回值不同,那麼可以依據這個方法的返回值在一個action標籤中配置多個result標籤。type標籤的屬性值主要是做重定向和轉發操作,而這兩個操作又有兩個不同的目的地,分別是Action類和頁面,那麼這個標籤就有四個屬性值:去網頁面時的轉發操作是(dispatch)、重定向操作是(redirect);去往Action類的轉發操作是(chain)、重定向操作是(redirectAction)

除此之外,struts.xml中還有一些其他的配置標籤,不在一一贅述。

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