struts1——靜態ActionForm與動態ActionForm

來源:互聯網
上載者:User

struts1——靜態ActionForm與動態ActionForm

在struts1中,我們可以使用ActionForm來擷取從client端提交上來的資料,並通過action配置中的name屬性,將某個ActionForm配置到某次請求應答的Action中,作為本次請求應答的資料轉送介質,ps,其實還是側重於資料在用戶端的擷取,因為賦值部分架構幫我們做好了。

 

對於ActionForm的使用,我們有兩種方式:一是通過建立類的方式,二是直接寫入設定檔的方式。

 

 

一,靜態ActionForm的使用

 

首先我們需要定義類,注意這個類要繼承ActionForm類:



 

定義好類之後,將我們要擷取的用戶端資料作為成員變數寫入類中,確保get後面的名稱首字母小寫後,與我們用戶端提交的資料的name名稱一致。

 

之後,在struts的設定檔中配置此類:

 

 

為了關聯ActionForm與Action關係,還需要在Action的name配置中,指明此Action使用的是哪個form-bean:

 

 

在Action中擷取request中的資料,只需強轉成我們定義的ActionForm類即可:

 

 

 

二,動態ActionForm使用

 

如果我們系統比較大的話,試想一下,我們要為每一個Action配置一個ActionForm類來實現資料的傳遞,這樣的話,ActionForm就比較多。這時候,我們可以使用動態ActionForm將ActionForm配置在設定檔中.

 

 

動態ActionForm的type都要配置成 : type="org.apache.struts.action.DynaActionForm" ,將類的property指明類型之後配置到form-property中。

 

服務端取值:

 

 

動態ActionForm的值都儲存到一個map中,key-value形式,key為我們設定檔中的form-property的name的值,得到value之後進行強轉。

 

表現層取值:

 


 

 

三,靜態ActionForm跟動態ActionForm的比較

 

1,兩種ActionForm都能實現相同的功能:比如資料驗證,reset資料。

2,使用類的方式缺點是項目大的話,類較多,每次增加,都要重新編譯;但是Action中取值簡單;

3,使用動態ActionForm省去了類,只需在設定檔中配置,方便修改,缺點是取值不方便,map裡面get的時候,如果key指明的不正確,容易出錯。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.