多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Struts――ActionForm

Struts――ActionForm

來源:程序員人生   發布時間:2014-10-29 08:00:01 閱讀次數:2916次

ActionForm

      ActionForm 表示 HTTP窗體中的數據,可以將其看作是模型和視圖的中介,它負責保存視圖中的數據供模型或者視圖使用。ActionForm還具有的過濾保護的作用,只有通過ActionForm 驗證的數據才能夠發送到 Action 處理。

      ActionForm Bean從應用和配置的角度分為兩類:動態ActionForm和靜態ActionForm和LazyForm。作用一樣,只是實現不一樣。

 

.靜態Form

由程序員手工編寫Form

1.ActionForm

提交表單的字段名和form中的屬性名一致。

 

2.ValidatorForm

用于驗證框架的Form,在請求參數前,先使用驗證框架驗證。

在struts-config中對應的action標簽的validate值為true。

3.ValidatorActionForm

 

 

.動態ActionForm

通過配置文件完成ActionForm配置

 

1.DynaActionForm

<form-beanname="dynaForm"type="org.apache.struts.action.DynaActionForm"> <form-property name="username"type="java.lang.String"/> <form-property name="age"type="java.lang.Integer"/> </form-bean>


 

Java代碼

public ActionForwardexecute(ActionMapping mapping, ActionForm form, HttpServletRequestrequest, HttpServletResponse response) throwsException { DynaActionFormdaf=(DynaActionForm)form; Stringusername=(String)daf.get("username"); Integerage=(Integer)daf.get("age"); System.out.println("UserName="+username); System.out.println("Age="+age); returnmapping.findForward("success"); }


 

 

 

2.DynaValidatorForm

 

              和ValidatorForm一樣在使用驗證框架時使用。配置和DynaActionForm類似。

type="org.apache.struts.validator.DynaValidatorForm"

 

3.DynaValidatorActionForm

        ValidatorActionForm和DynaValidatorActionForm也都是在使用驗證框架時使用,和DynaValidatorForm及ValidatorForm不同的是,在配置validtion.xml中<formname=path> name使用的是action的path屬性值。以此來區分不同請求的驗證規則。

 

 

 

.還有一種特殊的FormLazyValidatorForm

<form-beanname="loginForm"type="org.apache.struts.validator.LazyValidatorForm"></form-bean>

我們沒有配置form的屬性。所以在jsp頁面中必須使用struts標簽。

Jsp代碼

<br>基本使用方式<br>Customer Name:<html:text property="username"></html:text> <br>Customer Code:<html:text property="usercode"></html:text> <br> <br>自動封裝Map<br>國家:<html:text property="address(nation)"></html:text> <br>省份:<html:text property="address(state)"></html:text> <br>城市:<html:text property="address(city)"></html:text>

這樣就可以直接進行驗證框架和action中的取值。

Java代碼

public ActionForwardexecute(ActionMapping mapping, ActionForm form, HttpServletRequestrequest, HttpServletResponse response) throwsException { LazyValidatorFormlz = (LazyValidatorForm) form; Stringusername = (String) lz.get("username"); Stringusercode = (String) lz.get("usercode"); System.out.println("name---" + username + " usercode---" + usercode); Map m =(Map) lz.get("address"); System.out.println(m.get("nation")); System.out.println(m.get("state")); System.out.println(m.get("city")); returnnull; }


四、ActionForm賦值原理

     我們如果知道了Struts的流程,那么理解起ActionForm的賦值過程來就簡單了很多,大家都知道,點擊提交后,會先初始化ActionServlet類,當接收到請求時,會調用service對象檢查HTTP請求類型,通過doGet()或doPost()方法調用process()方法。在ActionServlet中會調用RequestProcessorprocess()方法進行處理,該方法負責創建ActionForm對象,創建成功之后,首先執行ActionForm中的reset()方法進行重置,然后得到表單中所有輸入域的name名稱,再調用request.getParameterValues(),根據name名稱得到相應的值,最后將表單中的數據全部放到map中,mapkey為表單輸入域的名稱,mapvalue為表單輸入域的值,接下來調用一個第三方組件BeanUtils,將Map中的值,根據ActionForm中的類型先轉換好,再調用ActionForm中的setter方法設置到ActionForm上。

 

reset()方法:


賦值流程:

 


 

簡單順序:先調用構造方法(判斷是否存在)――reset(重置)――setter(設定值)

 

五、總結

        ActionForm是在Struts1中存在的一個常用類,ActionForm幫助我們實現了自動設置數據,使得程序員的使用變得簡單,不用關心賦值之類的事情而專注于業務。Struts2出現后,不用人們手動寫ActionForm了,但是這種思想我們需要了解。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产做出在线 | 传媒麻豆 | 韩国三级做爰中文字幕 | 在线v片| 老司机福利在线免费观看 | 日韩综合第一页 | 中文字幕在线影院 | 古代的一a一片一级一片 | 亚洲 [12p] | 久久综合亚洲 | jizz亚洲视频 | 成人自拍视频在线观看 | 视频一区二区精品的福利 | 网红毛片| 三级理论中文字幕在线播放 | 亚洲日韩天堂 | 五月天欧美激情午夜情 | 91精品久久一区二区三区 | 伊人9999| 日韩欧美国产中文字幕 | 亚洲精品永久免费 | 免费自拍视频 | 欧美国产日韩1区俺去了 | 91在线亚洲精品一区 | 国产不卡在线视频 | 啪网址| 国内视频自拍 | 五月天开心中文字幕 | 国产xxxxx片免费观看 | 亚洲高清在线 | 欧美曰逼| 老司机午夜免费福利视频 | 爱爱小视频在线看免费 | 亚洲 欧美 小说 国产 图片 | 国产精品视频永久免费播放 | 在线观看的网址 | www日本www| 亚洲最大在线视频 | 国产精品久久久久久五月尺 | 日本不卡免费高清一级视频 | 国产尤物在线播放 | 无码日韩精品一区二区免费 |