Struts1.3 action配置

struts1.3 配置文件之action

action元素的全部配置會被映射到ActionMapping對象中。

下面是action元素的每一個屬性的做用描述:html

attribute

在struts將JSP頁面的表單對象封裝成一個ActionForm對象後,會將這個ActionForm對象保存在request做用域中或者session做用域中,attribute屬性就是做爲key被存儲到做用域中。java

在JSP頁面能夠直接使用EL表達式去獲取ActionForm對象:apache

${requestScope.對象名.屬性}session

或者app

${sessionScope.對象名.屬性}jsp

這裏的對象名就是attribute屬性定義的值。ide

注意:當action元素中定義了name屬性後,attribute屬性的值將被忽略。this

若是當前action須要用到ActionForm時,name屬性是必須的,attribute屬性就是非必須的。spa

通常狀況下,attribute屬性值與name屬性值的值相同。orm

cancellable

可 取的值爲:true,false,yes,no。在JSP頁面的表單中,<html:cancel />標籤容許退出當前Action,若是cancellable屬性值爲真(true,yes),則一切正常。若是cancellable屬性爲假 (false,no),則點擊cancel按鈕後發生org.apache.struts.action.InvalidCancelException異常。

默認爲false。

catalog

The name of a commons-chain catalog in which to look up a command to be executed as part of servicing this request. Only meaningful if "command" is also specified.

className

某個實現ActionMapping類的子類的全路徑名(包括包名)。能夠自定義一個ActionMapping的子類。

默認爲<action>元素的父節點<action-mappings>的type屬性,若是未定義則默認爲org.apache.struts.action.ActionMapping

command

The name of a commons-chain command which should be looked up and executed as part of servicing this request.

extends

The path of the ActionConfig that this object should inherit properties from.

forward

某個servlet或者jsp頁面或者其餘資源的相對路徑。若是使用了forward屬性,則當前action被觸發時,會跳轉到forward屬性指定的資源,不會繼續進行處理,固然也會忽略type屬性。

<action path="/login" forward="/form/login.jsp" />

當 用戶訪問"/login.do"時,會forward到"/form/login.jsp"頁面,Struts內部會使用 RequestDispatcher.forward()方法。這是一個很好的隱藏JSP頁面的真實路徑方法。能夠將JSP頁面放在WEB-INF目錄 下,這樣只能經過"*.do"或者被Action調用的形式訪問。

include

做用同forward屬性,能夠包含某個資源,內部是經過RequestDispatcher.include()方法實現。 一樣會忽略type屬性。

input

當前action的提交頁面路徑(默認)或者其餘資源的相對路徑。使用ActionMapping.getInputForward()能夠返回input屬性指定的資源路徑。

當FormBean的驗證方法vaildate返回不爲null的ActionErrors時,將返回input屬性指定的路徑,若是沒有指定input屬性,將拋出異常(java.lang.IllegalArgumentException: The path of an ForwardConfig cannot be null

當在action元素中定義了name屬性時,input屬性是必須定義的。

name

FormBean的name,應該與<form-bean>元素中的name屬性相同,這樣才能將FormBean與當前action綁定起來。

若是有了name屬性,則必須定義input屬性。

attribute屬性與name屬性相似,可是name是必須的,attribute不是必須的。

Action是經過name屬性去尋找本身的FormBean,而不是attribute屬性。

parameter

此 屬性結合DispatchAction類使用。當parameter屬性值爲method,則訪問連接"/userAction?method=add" 時,在繼承了DispatchAction的Action類中會調用自定義的add方法。實現不一樣的操做,自動調用不一樣的業務處理方法。不用手動去寫if else代碼了。

具體,請參看《Struts1.X-DispatchAction類-根據請求參數實現業務分派》

path

以"/"開頭,不帶文件擴展名的路徑,Struts根據path屬性來選擇相應的Action處理用戶的請求。好比當某個請求地址爲"show.do",則path屬性應該爲"/show",這樣才能找到合適的Action處理用戶的請求。

prefix

指 定填充當前 Action 關聯 FormBean 時 ,要添加到請求參數名稱的前綴,所以,若是請求參數名爲 "username" 而且 prefix 屬性被設置爲 "search" ,則將對 FormBean 調用一個名爲 setSearchUsername() 的方法,只有指定了 name 屬性,本屬性纔有效

roles

以逗號分割的一段role角色名,只有這些角色才能訪問當前Action,其餘用戶訪問後會拋出【org.apache.struts.chain.commands.UnauthorizedActionException】異常。

scope

FormBean的做用域,可取的值爲request和session,默認爲session。若是未定義name屬性,則這個屬性也就麼意義了。

suffix

做用同prefix,suffix爲後綴,prefixx爲前綴。

type

完整的類名,包括包名,此類應該是org.apache.struts.action.Action類的子類。若是定義了forward屬性或者include屬性,則type屬性被忽略。

unknown

可取的值:true,false,yes,no。當爲真時(true,yes),當前這個Action將處理全部未找到相應處理Action的請求。只能有一個Action的unknown屬性爲真。默認爲false。

validate

可取的值:true,false,yes,no。當爲真時(true,yes),在進入Action處理類前,是否調用ActionForm Bean的validate()方法對錶單數據進行驗證。默認爲true。

相關文章
相關標籤/搜索