posts - 1,  comments - 1,  trackbacks - 0
          path屬性 ActionMapping URI,或者path,對用戶來說就象web server上的一個文件。但實際上它并不 代表一個文件。它是一個對ActionMapping的虛擬引用。 因為它暴露給其它系統, path 并不真正是個邏輯名稱,就象那些我們用于ActionForward 中的一樣。 path 可以包括反斜杠和擴展名--如果它引用一個文件系統——但它們都只是 一個單一名稱的一部分。 ActionMapping自身是一個“平面的” 名稱空間,完全沒有內部層次關系。它僅僅是正好使用 了一個和層次性文件系統中一樣的名稱而已。 當然, 這對處理ActionMapping仍然是有幫助的,就象它們是一個層次關系或者在同一個"文 件夾"下的相關命令組的一部分。唯一的限制是名稱必須匹配于在應用部署描述文件中為 ActionServlet指定的樣式。這通常是/do/*或者 *.do,但是其它相似的樣式也可以使用。如果 你在一個團隊環境中工作,不同的團隊可能有不同的 ActionMapping 名稱空間使用。某些 人可能工作于/customer ActionMapping, 而另一些可能工作于/vendor ActionMapping。 這也可能和各個團隊使用的Java 包的層次相關。因為 ActionMapping URI是邏輯的構造, 所以你可以用它來以各種方式組織來適合你的項目。 forward 屬性 當指定了forward 屬性時,servlet將不會把請求傳遞給Action類,而是調用 RequestDispatcher.forward。因為操作沒有使用Action 類, 它也可以被用來進行 Struts 和其它資源之間的集成,或者用來構建系統原型。forward, include, 以及 type 屬性是互斥的 include 屬性 當指定了include 屬性時, servlet將不會把請求傳遞給Action 類而是調用 RequedtDispatcher.include方法。因為操作沒有使用Action 類, 它也可以被用來機械 進行Struts 和其它組件之間的集成。forward, include, 以及 type 屬性是互斥的。 type 屬性 大部分 mapping都會指定一個 Action 類類型,而不是一個forward 或者 include。Action 類 可以被多個mapping使用。 Mapping可以指定form bean,參數,forward,或者exceptions屬 性。forward, include, 以及 type 屬性是互斥的。 classname屬性 如果被指定,classname 是應該用于此對象的ActionMapping子類的全限定Java類名稱。這 就允許你使用你自己的ActionMapping 子類來引入特定的方法和屬性。參見7.4節。 name屬性 如果在Struts 配置文件中配置了相應的formbean段的話,這個屬性指定了form bean的 邏輯名稱。缺省情況下,這也是將form bean 放入請求或者會話上下文時使用的名稱。使 用該類的attribute 屬性來指定不同的屬性(Attribute)關鍵字。 roles屬性 這個屬性是一個逗號分隔的,允許訪問該ActionMapping 對象的安全角色稱的列表。缺省情 況下,與基于容器的安全機制所使用的同一個系統將用于這里給定的角色列表。這意味著你 可以通過在部署描述符中指定特定的URL模板而使用基于action的安全,或者兩者都使用。 安全檢查由請求處理器(org.apache.struts.action.RequestProcessor)的 processRoles方法處理。通過子類化請求處理器,你也可以在基于應用的安全下使用 roles 屬性。 scope屬性 ActionForm bean 可以存儲在當前的請求或會話范圍中(這樣它可以服務于另外的請求)。 雖然大部分開發人員使用請求范圍來存儲ActionForm, 框架的缺省設置卻是會話范圍 validate屬性 ActionForm 生命周期內的一個重要步驟是在其數據提供給業務層之前需要進行校驗。當 mapping 的validate 屬性設置為true時,ActionServlet將調用ActionForm的 validate 方 法。如果 validate 返回false,請求將被轉發到input 屬性指定的資源。 經常,開發人員將為每個數據輸入表單創建兩個mapping。一個mapping 將使 validate 設 置為 false, 所以你可以創建一個空的表單。另一個則設置validate 為true,用來提交完整 的表單。 input屬性 當validate被設置為true時,重要的是需要提供一個有效的輸入路徑。這也是當ActionForm validate 方法返回 false時,控制應該被傳遞到的地方。通常這是一個表現頁面。有時也 可以是另外一個用來產生頁面所需要的數據對象的Action path (其 validate 必須設置為 false)。 輸入轉發 在Struts 1.0中,ActionMapping的 input 屬性通常是一個字面的URI。在Struts 1.1中,它也 可以是一個ActionForward 的名稱。ActionForward 被獲取之后,其path 屬性被用作input 屬性。這也可以是一個全局或者局部轉發。 這兒為了使用 ActionForward而不是字面的path, 可以設置這個模塊的 元 素的inputForward 屬性為 true: parameter屬性 這個普通的paramenter屬性允許Action能夠在運行時被配置。許多標準的Struts Action都使用 這個屬性,標準的Scaffold Action也經常使用它。Parameter屬性可以包含URI, 方法名稱,類 名稱,或者其它一些Action在運行時可能需要的信息。這種靈活性允許一些Action履行雙倍 或者三倍的職責,削減應用所需的不同的類的數量。 在一個Action 類中,parameter屬性是從傳遞到perform的mapping中取得的: parameter = mapping.getparameter(); attribute屬性 不時地,你可能需要同時在同一個上下文中保存同一個ActionForm 的在兩份拷貝。這在 ActionForm被存于會話上下文中作為工作流的一部分時,經常發生這種情況。為了避免它們 之間的名稱沖突,你可以使用 attribute 屬性來給一個 ActionForm bean 一個不同的名 稱。另一個方法是在配置中定義另一個ActionForm bean,使用相同的類型但使用不同的名稱。 prefix和suffix屬性 與 attribute屬性一樣, prefix 和suffix 屬性可用來避免應用系統中的名稱沖突。如 果指定了這個屬性,這就表明允許在屬性名稱前面加上前綴或者后綴,形成它們從請求中被 組裝時的一個別名。 如果指定了前綴 this,那么在ActionForm組裝時: thisName=McClanahan 相當于 name=McClanahan 而它們都可以通過調用 getName("McClanahan"); 取得。這并不影響屬性如何被標簽擴展輸出。它只影響到自動組裝機制如何從請求中感知它們 unknown ActionMapping 在Web上沖浪時,大都遇到過討厭的404— pages not found信息。大部分web server 都提供一些特殊的特征來處理對未知頁面的請求,所以 webmaster 可以將用戶引導到正確的方向上。 Struts 提供了一個類似的服務來處理404錯誤—即unknown ActionMapping。 在Struts 配置文件中,你可以指定一個ActionMapping 來接收所有與其它ActionMapping不相 匹配的請求: 如果沒有設置它,沒有匹配對的ActionMapping請求就會拋出: 400 Invalid path /notHere was Requested 請注意通過對ActionMapping請求, 我們的意思是URI首先必須匹配為servlet指定的前綴或者 后綴 (通常是 /do/* 或者 *.do)。對于其它樣式的請求, 無論好壞,都將被容器中的其它 servlet處理: /do/notHere (goes to the unknown ActionMapping) /notHere.txt(goes to the Container) 比較多,不過常用的也就是path,type,scope,name,parameter如果要在form里做驗證要寫input,validate.
          posted on 2006-08-30 17:38 今夕何夕 閱讀(963) 評論(1)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 临泉县| 定襄县| 镇赉县| 辉南县| 庆安县| 临城县| 鞍山市| 开远市| 安塞县| 金坛市| 雷山县| 化德县| 高密市| 德兴市| 甘孜县| 丰宁| 额尔古纳市| 姜堰市| 长宁县| 小金县| 陇西县| 曲麻莱县| 平定县| 彩票| 成安县| 合作市| 蒙自县| 沭阳县| 察雅县| 庐江县| 唐海县| 石阡县| 芮城县| 喀喇| 海阳市| 乐业县| 温州市| 英山县| 和田县| 霍林郭勒市| 靖州|