struts1配置文件中action的經常使用屬性

首先列舉action的屬性代碼以下:web

<action path="URL"session

type="ActionClass"app

name="userForm"jsp

scope="request"post

attribute="key"orm

input="/register.jsp"xml

forward="/index.jsp"對象

include="/index.jsp"內存

unknown="true"ci

parameter="test"

className="mappingclass"

validate="true">

<forward name="" path=""></forward>

</action>

下面對其屬性解析:

path:表明請求的Action的名稱,無需指明後綴struts1自動處理

<form action="${pageContext.request.contextPath}/Register.do" method="post">....</form>

當其點擊此提交時後綴名稱爲.do,(因爲咱們在會web.xml配置*.do的處理),因此通過mapping的地址映射,交給ActionServlet按照struts1的處理流程處理提交Action的請求。

type:表明請求的Action交給哪一個Action處理,注意此類的名稱必定是類的全名稱(包括包名)。

name:表明的是請求參數封裝的ActionForm的名稱。

備註:此名稱與<form-beans><form-bean name="名稱Form" type="Form類的全名"></form-bean></form-beans>中"名稱Form"一致,並經過此form-bean中的type來指定封裝的ActionForm類。

scope:表明把formbean的參數封裝到那個做用域中,默認的做用域爲session。

備註:當咱們沒有指定formbean的做用域時,在type指定的Action類中還能夠經過如下代碼獲取:

UserForm userForm = (UserForm) form;

/**

* 因爲在Action的屬性配置中的scope屬性指定了userForm的做用域, 當採用的是默認值(session)時,

* 也能夠直接從做用域中獲取代碼以下:UserForm userForm =

*(UserForm)request.getSession().getAttribute("userForm");

*/

/**備註:因爲在開發中爲了節省ActionForm佔用的內存空間,通常採用scope=」request」配置,所以也能夠採用一下的方式獲取*/

UserForm userForm = (UserForm) request.getAttribute("userForm");

注意:若aciton的配置中沒有配置attribute="key" 屬性時,在Action中獲取的關鍵字採用默認的值及name的名稱,當配置了attribute="key"屬性時,必須經過"key"獲取。

attribute:指定formbean存儲的key,不設默認爲name屬性的值。

舉例:若是在action的配置中配置了attribute=」uform」,在Action中獲取的方式應該爲:

/** 經過方法參數中傳遞的ActionForm獲取ActionForm中的對象並強制造型爲UserForm */

UserForm userForm = (UserForm) form;

/**因爲在action的配置中指明瞭attribute的屬性及屬性值,所以應該採用如下方式獲取*/

UserForm userForm = (UserForm) request.getAttribute("uform");

input="/register.jsp" 指定formbean的數據是由哪一個頁面提供的。

說明:提供此屬性的目的在於formbean校驗失敗時,程序方便跳回formbean的輸入頁面,經過struts1錯誤信息標籤,顯示校驗失敗信息。

forward="/index.jsp" 指定收到請求時,跳轉到相應的jsp頁面。

強調:若是配置了此屬性,則action將再也不被調用,即接受到此action時,直接調至到index.jsp頁面。

include="/index.jsp" 指定收到請求時,進行頁面包含。

unknown="true" 若是action把該屬性設置爲true,則它能夠處理客戶機發出的全部無效的.do請求,默認值爲false。

舉例:若是在配置文件中添加以下的action配置,<action path="/**" forward="/index.jsp" unknown="true"/>,當若是在地址欄中發出請求爲:http://localhost:8080/20110105struts1_2/regi.do

若是在此配置文件中找不到regi.do的Action就會處理上面配置的action直接跳轉到index.jsp頁面 (備註:與此action中path名稱無關,但必須配置一個path屬性)。

parameter="test" 配置action參數,調用actioMapping.getParameter方法能夠得到這裏配置的參數。

className="mappingclass" <action>標籤和全部的配置信息使用哪一個對象封裝,默認值爲ActionMapping對象。

validate="true" 請求參數封裝到formbean中後,是否讓struts自動調用formbean的validate方法進行數據校驗,默認true。

forward標籤

在action配置中,還有一些其餘的標籤配置,<forward name="" path=""></forward>即在處理完此action以後能夠在Action中的execute方法中經過此標籤的name屬性獲取此action,並跳轉到相應的path地址中。

舉例:若是在action內部咱們配置了forward標籤的代碼以下:

<forward name="message" path="/message.jsp"></forward>

那麼能夠再Action返回值中作以下處理:

/** 獲取跳轉的地址並返回ActionForward */

return mapping.findForward("message");

經過以上配置,在處理完此action後,struts1通過處理後就會跳轉到/message.jsp視圖層。

相關文章
相關標籤/搜索