Flyingis

          Talking and thinking freely !
          Flying in the world of GIS !
          隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
          數(shù)據(jù)加載中……

          重溫Struts--ActionForm

          作者:Flyingis

          ActionForm Struts設(shè)計中比較有爭議的一個概念,在某些情況下也許不會使用到ActionForm,具體可以參照《Struts Action的多種角色一文。盡管如此,ActionForm在許多應(yīng)用的開發(fā)中都實現(xiàn)了重要的功能,它是Struts框架提供的DTO,用于在視圖層和控制層之間傳遞HTML表單數(shù)據(jù),控制層可以從ActionForm Bean中讀取用戶輸入的表單數(shù)據(jù),也可以把來自模型層的數(shù)據(jù)存放到ActionForm Bean中,返回給視圖,即使用它的主要目的是字段采集、類型轉(zhuǎn)換器、以及傳輸對象等。對于ActionForm BeanMVC中所處層次結(jié)構(gòu)的理解,可以參考《剖析MVC中的各種Object。

          ActionForm 的基本功能

          1. 字段采集

          Web應(yīng)用程序開發(fā)過程中,數(shù)據(jù)的采集是最基本的一個環(huán)節(jié),而html定義的數(shù)據(jù)輸入控件和http定義的數(shù)據(jù)傳輸協(xié)議非常簡單,因此在Struts中設(shè)計了ActionForm來彌補這種不足。Strutshttp參數(shù)處理的方法是將輸入?yún)?shù)傳遞到JavaBean屬性來進行處理,當(dāng)ActionForm的屬性與某個請求參數(shù)匹配,框架自動以參數(shù)的值設(shè)置屬性。

          2. 數(shù)據(jù)校驗器

          Html 沒有在數(shù)據(jù)提交之前對數(shù)據(jù)進行校驗的能力,使用javascript可以做到這些,優(yōu)點在于可以減輕服務(wù)器負擔(dān),但javascript經(jīng)常會被瀏覽器禁止,因此,在StrutsActionForm實現(xiàn)了部分數(shù)據(jù)校驗的功能,當(dāng)輸入數(shù)據(jù)不符合要求時,頁面將被返回到數(shù)據(jù)數(shù)據(jù)頁面,要求用戶重新輸入。一般情況下,ActionForm屬性定義為String類型,以便對各種輸入進行捕獲。另外,還可以用ActionFormAction對輸入數(shù)據(jù)進行雙重校驗,ActionForm校驗數(shù)據(jù)類型是否正確,Action校驗該數(shù)據(jù)是否滿足業(yè)務(wù)層的其他要求。

          3. 類型轉(zhuǎn)換

          HTML 表單中的數(shù)據(jù)類型一般是Stringboolean類型,通過在ActionForm Bean中實現(xiàn)Helper方法,可以實現(xiàn)屬性類型的轉(zhuǎn)換。

          4. 傳輸對象

          ActionForm 可以作為其他Bean的數(shù)據(jù)載體,它裝載的數(shù)據(jù)通常對應(yīng)著持久層中的不止一個實體。

          posted on 2006-03-18 22:40 Flyingis 閱讀(845) 評論(0)  編輯  收藏 所屬分類: Web 框架與開發(fā)

          主站蜘蛛池模板: 白银市| 延川县| 和静县| 遂昌县| 长顺县| 台南县| 温州市| 浙江省| 平原县| 陆川县| 辽阳市| 芦山县| 宁德市| 龙海市| 鄂尔多斯市| 太白县| 沐川县| 苍溪县| 遂平县| 马鞍山市| 鄂伦春自治旗| 安福县| 房山区| 吉首市| 延庆县| 万州区| 枞阳县| 芒康县| 崇义县| 洪雅县| 阿拉善右旗| 塘沽区| 绩溪县| 会东县| 深水埗区| 海阳市| 治县。| 紫金县| 竹北市| 广西| 湾仔区|