国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

學(xué)習(xí)Jakarta Struts 1.1 (二)

2019-11-18 15:56:30
字體:
供稿:網(wǎng)友

  DynaActionForm
  
   DynaActionForm提供了一種方便的機制,從根本上消除了編寫ActionForm的需要。DynaActionForm可答應(yīng)動態(tài)的表單屬性。這意味著你能夠在你的struts-config.xml文件中定義屬性并且將表單類型設(shè)置為org.apache.struts.action.DynaActionForm。什么都不需要寫。DynaActionForm使用Apache公共項目中的DynaBean完成這些操作。這一動態(tài)的行為是通過反射(reflection)與哈希圖(Hashmaps)提供的。
  
    DynaActionForm是在struts-config.xml文件中使用標(biāo)記定義的,如下所示:
  
    
    
    
  

  
  動態(tài)表單的屬性與標(biāo)準(zhǔn)的ActionForm的屬性類似。屬性name是用于索引Action中的表單bean,并且type用于指定實例化的類。當(dāng)使用類DynaActionForm時,的動態(tài)屬性自動默認(rèn)為真(true)。對于DynaActionForm,要用元素指定表單的所有屬性。元素中的name是指屬性名稱。type是指bean屬性用java的實現(xiàn)類的類名。假如這個屬性是索引類型的,可在type后添加“[ ]”。在上表中,你應(yīng)該注重最后一個屬性genre的定義,我們設(shè)置了初始值(或叫 默認(rèn)值)為“Dance”。這個值也會在DynaActionForm中reset()方法被調(diào)用時被作為默認(rèn)值設(shè)置,并答應(yīng)在表單中設(shè)置默認(rèn)值的機制。假如在initial屬性中沒有指定任何值,那么所有原始類型的初值被設(shè)置為0,假如是對象則初值為null(空)。
  
  使用DynaActionForm非常方便,主要的一個好處就是你只需寫非常少的代碼。就像其他表單一樣,前面的代碼例子是使用表單所需的全部代碼。需要知道的一件事就是驗證。當(dāng)使用DynaActionForm時,假定在某處進(jìn)行了驗證處理,這與ActionForm有些不同。你可以在自己的Action中實現(xiàn)驗證,但這是一個更好的方法。
  
  進(jìn)行驗證,可用DynaValidatorForm或者DynaValidatorActionForm,這兩個類都在org.apache.struts.validator package包中。通過擴展DynaActionForm,可以得到基于XML文件的基本值域的驗證。驗證是基于輸入驗證器的key。Key是來自于struts-config.xml文件的name屬性。它應(yīng)當(dāng)與validation.xml文件中的表單元素的name屬性匹配。
  
  多應(yīng)用支持
  在Struts 1.1中可以定義和支持多重的子應(yīng)用。這意味著你能將你的應(yīng)用放在更易維護的子應(yīng)用中。你不再需要在唯一的struts-config.xml文件之外檢測來源控制。
  
  另一個使用子應(yīng)用的原因是根據(jù)客戶而改變的控制流。在某些應(yīng)用中,你可能有一些通用的頁面,但是控制流也許會由于登陸應(yīng)用的客戶的不同而有所改變。你能把這個控制流的元數(shù)據(jù)存入數(shù)據(jù)庫并生成web.xml文件(或該文件中的一部分),與不同的struts-config.xml文件一起。
  
  假如你曾對Struts 1.x進(jìn)行過開發(fā),你可能注重到了許多web.xml文件中的元素已經(jīng)移到了Struts 1.1的struts-config.xml文件中。這是因為現(xiàn)在他們是應(yīng)用特定(application-specific)的。多重的子應(yīng)用通過在請求URI的相對于上下文部分開始的前綴來確定。假如沒有應(yīng)用前綴能夠匹配,則選擇默認(rèn)配置。默認(rèn)設(shè)置擁有一個空字符串的前綴。執(zhí)行默認(rèn)設(shè)置的這種方式對可能只定義一個應(yīng)用的Struts 1.0.x是向后兼容的。
  
  假如你擁有一個包含不同功能模塊的大型應(yīng)用,那么用協(xié)同運行的子應(yīng)用代替一個巨大的應(yīng)用會更有意義。下面所示的文件web.xml顯示了如何定義子應(yīng)用。
  
  
    config
    /WEB-INF/struts-config.xml
  

  
  
  
   
    config/catalog
    /WEB-INF/struts-config-catalog.xml
  

  
  
  
   
    config/sorter
    /WEB-INF/struts-config-sorter.xml
  

  
  
  當(dāng)使用子應(yīng)用時,你可能定義上下文相關(guān)的請求URI來指定使用哪一個子應(yīng)用。例如,對表單的動作可能如下所示:
  
  
  引用了默認(rèn)的子應(yīng)用,或
  
  
  引用catalog子應(yīng)用的動作類。實際上你不必這么做。你可以在catalog子應(yīng)用中用/listCds假如你想這么做。基本規(guī)則是:所有在1.0版本中上下文相關(guān)的struts-config.xml參數(shù)現(xiàn)在在1.1版本中是子應(yīng)用前綴相關(guān)的。這樣,在沒有修改的情況下一個單一的應(yīng)用既可以作為默認(rèn)子應(yīng)用也可作為指定的子應(yīng)用。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 邵武市| 建昌县| 湖口县| 临武县| 江源县| 景泰县| 习水县| 峡江县| 枝江市| 饶河县| 江津市| 手机| 开远市| 吕梁市| 西藏| 象州县| 建阳市| 自贡市| 土默特右旗| 阿克| 耒阳市| 井陉县| 沈丘县| 吉木乃县| 禹州市| 库尔勒市| 双辽市| 鄂托克旗| 崇义县| 怀远县| 金门县| 蛟河市| 治多县| 威海市| 五寨县| 常宁市| 京山县| 微山县| 盖州市| 英超| 留坝县|