學習Jakarta Struts 1.1 (二)
DynaActionForm
DynaActionForm提供了一個方便的機制,從根本上消除了編寫ActionForm的需要。 DynaActionForm可答應動態的表單屬性。這意味著你能夠在你的struts-config.xml檔案中定義屬性並且將表單類型設定為org.apache.struts.action.DynaActionForm。什麼都不需要寫。 DynaActionForm使用Apache公共專案中的DynaBean完成這些動作。這動態的行為是透過反射(reflection)與哈希圖(Hashmaps)提供的。
DynaActionForm是在struts-config.xml檔案中使用與標記定義的,如下所示:
〜〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜〜 〜 〜〜 〜 〜、、〜、〜、、、〜都〜
動態表單的屬性與標準的ActionForm的屬性類似。屬性name是用於索引Action中的表單bean,且type用於指定實例化的類別。當使用類別DynaActionForm時,的動態屬性會自動預設為真(true)。對於DynaActionForm,若要用元素指定表單的所有屬性。元素中的name是指屬性名稱。 type是指bean屬性用java的實作類別的類別名稱。假如這個屬性是索引類型的,可在type後面加上「[ ]」。在上表中,你應該注重最後一個屬性genre的定義,我們設定了初始值(或叫 預設值)為「Dance」。這個值也會在DynaActionForm中reset()方法被呼叫時被當作預設值設置,並答應在表單中設定預設值的機制。假如在initial屬性中沒有指定任何值,那麼所有原始類型的初值被設定為0,假如是物件則初值為null(空)。
使用DynaActionForm非常方便,主要的一個好處就是你只需寫出非常少的程式碼。就像其他表單一樣,前面的程式碼範例是使用表單所需的全部程式碼。需要知道的一件事就是驗證。當使用DynaActionForm時,假設在某處進行了驗證處理,這與ActionForm有些不同。你可以在自己的Action中實現驗證,但這是一個更好的方法。
進行驗證,可用DynaValidatorForm或DynaValidatorActionForm,兩個類別都在org.apache.struts.validator package套件中。透過擴充DynaActionForm,可以得到基於XML檔案的基本值域的驗證。驗證是基於輸入驗證器的key。 Key是來自於struts-config.xml檔的name屬性。它應與validation.xml檔案中的表單元素的name屬性相符。
多應用支援
在Struts 1.1中可以定義和支援多重的子應用。這意味著你能將你的應用放在更易於維護的子應用中。你不再需要在唯一的struts-config.xml檔案之外偵測來源控制。
另一個使用子應用的原因是根據客戶而改變的控制流。在某些應用程式中,你可能有一些通用的頁面,但是控制流也許會因為登陸應用程式的客戶的不同而有所改變。你能把這個控制流的元資料存入資料庫並產生web.xml檔(或該文件中的一部分),與不同的struts-config.xml檔一起。
假如你曾對Struts 1.x進行過開發,你可能注重到了許多web.xml文件中的元素已經移到了Struts 1.1的struts-config.xml文件中。這是因為現在他們是應用特定(application-specific)的。多重的子應用透過在請求URI的相對於上下文部分開始的前綴來確定。如果沒有應用前綴能夠匹配,則選擇預設配置。預設設定擁有一個空字串的前綴。執行預設設定的這種方式對可能只定義一個應用的Struts 1.0.x是向後相容的。
假如你擁有一個包含不同功能模組的大型應用,那麼用協同運作的子應用取代一個巨大的應用會更有意義。下面所示的文件web.xml顯示如何定義子應用程式。
config
/WEB-INF/struts-config.xml
config/catalog
/WEB-INF/struts-config-catalog.xml
config/sorter
/WEB- INF/struts-config-sorter.xml
當使用子應用時,你可能定義上下文相關的請求URI來指定使用哪一個子應用。例如,對表單的動作可能如下所示:
引用了預設的子應用,或
『catalog。實際上你不必這麼做。你可以在catalog子應用程式中用/listCds假如你想這麼做。基本規則是:所有在1.0版本中上下文相關的struts-config.xml參數現在在1.1版本中是子應用前綴相關的。這樣,在沒有修改的情況下一個單一的應用既可以作為預設子應用也可作為指定的子應用。
以上就是學習Jakarta Struts 1.1 (二)的內容,更多相關文章請關注PHP中文網(www.php.cn)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

在使用TKMyBatis進行數據庫查詢時,如何優雅地獲取實體類變量名以構建查詢條件,是一個常見的難題。本文將針...
