Flyingis

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

          重溫Struts--ActionForm

          作者:Flyingis

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

          ActionForm 的基本功能

          1. 字段采集

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

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

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

          3. 類型轉(zhuǎn)換

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

          4. 傳輸對(duì)象

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

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

          主站蜘蛛池模板: 岳普湖县| 七台河市| 东光县| 门头沟区| 宣武区| 额济纳旗| 叙永县| 湘西| 祁连县| 浦东新区| 鹿邑县| 上杭县| 绥化市| 黎川县| 安康市| 定边县| 云阳县| 乌鲁木齐县| 兴仁县| 新邵县| 宁津县| 嘉善县| 花莲市| 邵武市| 襄垣县| 广河县| 名山县| 锡林浩特市| 扎囊县| 库伦旗| 天水市| 修水县| 铜梁县| 墨玉县| 瑞安市| 鄱阳县| 嘉祥县| 武平县| 镇江市| 宁津县| 晋江市|