空間站

          北極心空

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
          				接觸
          				Struts
          				久了不免會對其有這樣或那樣的看法,前階段潛心研究
          				Struts
          				,對其中的動態
          				ActionForm
          				的使用就有一些意見,在這里跟大家說道說道,希望大家能夠給點意見。
          		
          				
          						一、
          				
          				用途
          		
          				動態
          				ActionForm
          				與標準的
          				Form
          				的用途如出一轍,都是為了能夠作為
          				DTO(Data Transfer Object)
          				對向來與
          				Action
          				做數據傳遞,所不同的是動態
          				ActionForm
          				并沒有一個專門的類作為
          				DTO
          				對象的載體,取而代之的是在
          				Struts
          				配置文件
          				FormBean
          				中增加屬性配置項,來達到與
          				DTO
          				對象相同的作用。下面我們以用戶登陸的應用為例,討論一下普通的
          				ActionForm
          				與動態
          				ActionForm
          				的區別。
          		
          				用戶通過輸入用戶名和密碼后經過校驗進入系統。過程描述的很簡單,
          				ActionForm
          				設計起來也不復雜,我們只需要設定一下兩個屬性就可以了:
          		
          				private
          				
          						String userID;
          		
          				private
          				
          						String userPwd;
          		
          				最后我們為著兩個屬性加上
          				get
          				
          				set
          				方法就完成了普通
          				ActionForm
          				的設計。如果需要的話,我們還可以在這個
          				Formli
          				覆蓋
          				validate()
          				方法來對用戶輸入的信息進行簡單的校驗。
          		
          				下面,我們就來看看動態
          				ActionForm
          				是通過怎樣的設計來達到和上面同樣的效果的吧!
          		
          				我們在
          				struts-config
          				文件中的
          				<form-bean>
          				標簽中定義我們的動態
          				Form
          				,代碼如下。
          		
          				<
          				form-beans
          				>
          		
          				
          						? <
          				form-bean
          				
          						? 
          				
          				name
          				=”
          				loginForm
          				? 
          				type
          				=”
          				org.apache.struts.action.DynaActionForm
          				”>
          		
          				
          				
          				
          						
          						<!----
          				下面是設置
          				Form
          				的屬性
          				--- >
          		
          				
          						??????<form-poperty? 
          				name
          				=”
          				userID
          				? 
          				type
          				=”
          				java.lang.String
          				”/>
          		
          				
          						??????<form-poperty? 
          				name
          				=”
          				userPwd
          				
          				type
          				=”
          				java.lang.String
          				”/>
          		
          				
          						??</
          				form-bean
          				>
          		
          				</
          				form-beans
          				>
          		
          				這樣便完成了一個動態
          				ActionForm
          				的定義,我們不需要定義
          				get
          				
          				set
          				方法來設置或者獲得
          				Form
          				屬性的值,我們只需要在我們的
          				Action
          				中使用:
          		
          				String
          				 userID=(String)form.get(“userID”);
          		
          				這樣的方法獲得
          				Form
          				中的數據,或者是通過
          		
          				form.set(“userID”,”001318”);
          		
          				這樣的方法設置
          				Form
          				中的屬性值。
          		
          				從上面的論述不難看出兩種
          				ActionForm
          				的用途與使用差別不是很大,都可以完成對視圖的數據傳遞的作用。而從便捷角度來看動態
          				FormBean
          				顯得優勢明顯,因為他的設計更為簡單,而且由于具有可配置的優勢,使其在實際操作方面顯得跟為靈活!
          		
          				
          						二、
          				
          				差異
          		
          				上面的論述能夠突出動態
          				ActionForm
          				的優勢,下面我們來看看動態
          				ActionForm
          				的“致命傷”。
          		
          				
          						1、? 
          				
          				數據驗證
          		
          				細心的讀者會發現我在提及普通的
          				ActionForm
          				的時候我曾經講到過可以在
          				ActionForm
          				中的
          				validate()
          				方法對用戶輸入的信息進行簡單的校驗,而在動態
          				ActionForm
          				中卻從未提到。這是因為如果想要實現動態
          				ActionForm
          				的校驗我們必須做很多工作。首先我們必須引入
          				Validator
          				驗證框架來幫助我們完成數據校驗工作,其次由于某些數據的校驗,我們還有可能為其編寫數據校驗項來幫助
          				Validator
          				框架完成數據校驗工作。這與普通的
          				ActionForm
          				相比,動態
          				ActionForm
          				顯得繁瑣而笨拙。
          		
          				
          						2、? 
          				
          				可配置
          		
          				動態
          				ActionForm
          				的可配置型無疑是其存在優勢之一,,但筆者發現,其可配置性的作用可謂捉襟見肘。因為可配置的
          				FormBean
          				
          				Action
          				的耦合度還是相當大的。也就是說,由于
          				Action
          				類李引用了如“
          				String
          				 userID=(String)form.get(“userID”);
          				”這樣的代碼,那么當我們增加或刪除
          				Form
          				中的屬性的時候就必須更改我們的
          				Action
          				類,這與普通的
          				ActionForm
          				的作法是一樣的,失去了其可配置的優勢所在。
          		
          				綜上,筆者推薦使用普通的
          				ActionForm
          				去履行
          				DTO
          				的職責,因為那樣會更方便解決應用問題。動態
          				ActionForm
          				只是一點小嘗試,不推薦使用。以上官邸均屬個人看法,不妥之處還望各位能夠批評指正!
          		


          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=375179

          posted on 2006-12-25 14:36 蘆葦 閱讀(524) 評論(0)  編輯  收藏 所屬分類: Struts
          主站蜘蛛池模板: 广丰县| 绥江县| 龙州县| 万宁市| 神农架林区| 天祝| 石首市| 岚皋县| 丰县| 兰西县| 奉节县| 前郭尔| 江阴市| 金坛市| 青阳县| 定南县| 绥棱县| 朔州市| 梅河口市| 丰原市| 叶城县| 岳普湖县| 施甸县| 馆陶县| 营山县| 衡阳市| 昔阳县| 图木舒克市| 托里县| 昆山市| 宜宾县| 阿尔山市| 仁布县| 铅山县| 安宁市| 玉田县| 利辛县| 陆丰市| 凤山市| 读书| 呼伦贝尔市|