freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

j2ee項(xiàng)目實(shí)訓(xùn)struts框架技術(shù)——第5章struts框架actionform組件及應(yīng)用第1部分-wenkub

2022-11-28 16:15:11 本頁(yè)面
 

【正文】 求提交時(shí),而在表單中某些字段沒(méi)有被填寫數(shù)據(jù)時(shí),則在請(qǐng)求中只會(huì)包括參數(shù)的名稱,但是其值為空字符串;而如果在 ActionForm組件類中具有某些成員屬性,而表單中并沒(méi)有發(fā)送對(duì)應(yīng)的請(qǐng)求參數(shù),則不會(huì)設(shè)定 ActionForm中這些對(duì)應(yīng)的成員屬性,這些屬性將為 null。 在圖 所示的左圖為包含有用戶名稱 userName 和用戶密碼 userPassword 的一個(gè)Struts 的頁(yè)面表單,而右圖則為與該表單相對(duì)應(yīng)的 ActionForm 組件 類中的 userName 和userPassword 成員屬性 ,兩者保持一致 的命名 映射 規(guī)則 。在 Struts 的幫助文檔中把它比作 HTTP 請(qǐng)求和 Action 類 之間的防火墻,這充分地體現(xiàn)了ActionForm 組件類所具有的過(guò)濾保護(hù)的作用,因?yàn)橹挥型ㄟ^(guò)在 ActionForm 組件類中所設(shè)定的各種驗(yàn)證要求后的數(shù)據(jù)才能夠被發(fā)送到業(yè)務(wù)調(diào)度控制器 Action 組件類中被處理。 因此,在頁(yè)面表單設(shè)計(jì)時(shí)應(yīng)該應(yīng)用這些 HTML 類型的標(biāo)簽來(lái)構(gòu)建頁(yè)面中請(qǐng)求的表單。 2)緩存頁(yè)面請(qǐng)求的參數(shù) 在 Web 應(yīng)用中經(jīng)常需要對(duì)用戶提交的參數(shù)進(jìn)行修改行為,而常規(guī)的實(shí)現(xiàn)方式是在后臺(tái)楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 2/19 頁(yè) 獲得所要修改的各個(gè)參數(shù)項(xiàng)后,再利用 JSP 腳本語(yǔ)句將這些參數(shù)回寫到修改的頁(yè)面表單中(如 input type=text name=userName value=%=userName%) 。這個(gè)組件 對(duì)象 捕獲通過(guò) Http請(qǐng)求所提交的客戶端表單參數(shù)。 在 常規(guī)的 J2EE Web 實(shí)現(xiàn) 技術(shù)中 ,是利用HttpServletRequest 類來(lái)包裝 Http 的 請(qǐng)求 、并 利用其中的 getParameter()方法獲得用戶表單所提交的參數(shù)。此種實(shí)現(xiàn)方式不僅代碼瑣歲、而且不是面向?qū)ο蠓绞?。并利用它?Struts 框架 中所 提供的自定義標(biāo)簽庫(kù)技術(shù)相互結(jié)合,可以實(shí) 現(xiàn)對(duì)客戶端的 頁(yè)面 表單數(shù)據(jù)的良好封裝和支持。這在表單中的數(shù)據(jù)項(xiàng)目比較多的情況下,會(huì)增加一定的實(shí)現(xiàn)復(fù)雜度;而如果此時(shí)是應(yīng)用 ActionForm 組件類進(jìn)行表單的包裝實(shí)現(xiàn)方法 , 開(kāi)發(fā)者 只需要 將實(shí)體的 對(duì)象值 復(fù)制 到 對(duì)應(yīng)表單的 ActionForm 組件對(duì)象 中, ActionForm 組件 會(huì)自動(dòng) 地 把本身的值對(duì)應(yīng)顯示在表單 中的各個(gè)屬性數(shù)據(jù)項(xiàng)目 中。 有關(guān) Struts 框架中 的 HTML 類型的標(biāo)簽具體應(yīng)用示例請(qǐng)見(jiàn) 【例 21】 中的 用戶注冊(cè)功能的 頁(yè)面文件中的注冊(cè)表單的具體實(shí)現(xiàn)示例。 2)如何編寫用戶自定義的 ActionForm 組件類 由于 ActionForm 組件類所體現(xiàn)出的“ FormBean” 是 Struts 框架中的一個(gè)特有的概念,但其本質(zhì)是一個(gè) JavaBean 類。 圖 ActionForm 類 中的成員屬性和表單中成員域之間的命名映射規(guī)則圖示 另外,在 用戶自定義的 ActionForm 組件類 中 必須 為各個(gè)成員屬性提供 setter 和 getter 的數(shù)據(jù)訪問(wèn) 方法。 3)在 ActionForm 組件類 中重寫 validate 和 reset 方法 當(dāng)某個(gè)請(qǐng)求發(fā)生時(shí),如果需要對(duì)請(qǐng)求中的各個(gè)參數(shù)進(jìn)行檢查,可以在 ActionForm 組件類中重寫 validate 和 reset 方法 來(lái)實(shí)現(xiàn)對(duì)請(qǐng)求表單中的各個(gè)字段的校驗(yàn)和重置 ,以確保滿足應(yīng)用的業(yè)務(wù)邏輯中對(duì)數(shù)據(jù)的要求。 import 。 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){ ActionErrors actionErrors=new ActionErrors()。 } public void reset(ActionMapping mapping, HttpServletRequest request) { =。 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 5/19 頁(yè) } public String getUserPassWord() { return userPassWord。當(dāng)然, 在 Struts 框架 中 提供 ActionForm 組件類的主要目的是希望能夠在 Web 應(yīng)用系統(tǒng)的開(kāi)發(fā)中達(dá)到下面的目標(biāo): 1) 對(duì)頁(yè)面表單中的請(qǐng)求參數(shù)進(jìn)行包裝,從而可以在 Action 處理器類的程序中直接通過(guò) ActionForm組件 類獲得請(qǐng)求的參數(shù),而不再需要和 HttpServletRequest 對(duì)象進(jìn)行數(shù)據(jù)交互; 2) 以面向?qū)ο蟮姆绞絹?lái)封裝和獲得表單中的數(shù)據(jù),而不再通過(guò) 下面形式的代碼(“參數(shù)的名稱” )方式獲得 請(qǐng)求 表單中的數(shù)據(jù); 3) 通過(guò)在 ActionForm 組件類中提供 validate()方法實(shí)現(xiàn)對(duì)用戶的表單數(shù)據(jù)進(jìn)行服務(wù)器端的檢查,而部分代替客戶端的 JavaScript 腳本以提高系統(tǒng)的錯(cuò)誤檢查的安全性。 因此利楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán)所有,盜版必究 , 6/19 頁(yè) 用參數(shù)對(duì)象就可以獲得 請(qǐng)求的 頁(yè)面表單中的請(qǐng)求參數(shù)。 String userName = ()。因此,可以將 應(yīng)用系統(tǒng) 中 的消息轉(zhuǎn)移(或者說(shuō)狀態(tài)轉(zhuǎn)移)的非持久性數(shù)據(jù)存儲(chǔ) 由 ActionForm 組件承擔(dān) 。如果試圖在 ActionForm 中 采用 這樣 的 重載 方法 ,ActionServlet 組件將在 自動(dòng)組裝 表單中的請(qǐng)求參數(shù)時(shí) 就會(huì)拋出異常。 public String getUserAge{ return userAge。 Integer userAge=()。因此,在應(yīng)用系統(tǒng)用戶請(qǐng)求參數(shù)的驗(yàn)證實(shí)現(xiàn)方面應(yīng)盡可能采用服務(wù)器端的數(shù)據(jù)驗(yàn)證方法而減少使用客戶端的數(shù)據(jù)驗(yàn)證方法(如使用 JavaScript 腳本編程實(shí)現(xiàn))。比如表單中的某個(gè)項(xiàng)目的輸入不能為空、 Email 格式是否正確或者判斷用戶名、密碼長(zhǎng)度是否在規(guī)定的范圍內(nèi)等 方面的檢查,利用 ActionForm 組件類中的 validate()方法可以很輕松地完成這些“數(shù)據(jù)形式”的檢查工作。 因?yàn)?validate()方法會(huì)傳回 ActionErrors 對(duì)象,而在 ActionErrors 中可以儲(chǔ)存各個(gè)不同的 ActionError 對(duì)象所代表的錯(cuò)誤信息,每一個(gè) ActionError 對(duì)象與資源字符串文件中的“ key”相對(duì)應(yīng)?!纠?54】所示的代碼示例中對(duì)用戶請(qǐng)求的參數(shù)進(jìn)行“數(shù)據(jù)邏輯”方面的檢查,如果輸入的參數(shù)值為“ badperson”則意味著錯(cuò)誤,并產(chǎn)生出對(duì)應(yīng)的錯(cuò)誤提示信息(請(qǐng)注意其中的黑體部分的代碼)。 if((“badperson”)) { (person, new ActionError(,badPerson))。 Action 組件類中的 其他的功能代碼 ,在此省略 } 注意: 由于 Action 組件類中的 execute 方法的返回值并不是 ActionErrors 對(duì)象,因此必須將所產(chǎn)生的 ActionErrors 對(duì)象保存到 HttpServletRequest 對(duì)象中,在頁(yè)面中才能夠用 html:errors標(biāo)簽顯示輸出。然后再將該 ActionError 對(duì)象存儲(chǔ)到 ActionErrors 容器組件對(duì)象中。如果在 html:errors標(biāo)簽中沒(méi)有設(shè)置property 屬性,將顯示 ActionMessages 對(duì)象中所有的錯(cuò)誤消息。但常規(guī)的一個(gè)頁(yè)面表單對(duì)應(yīng)一個(gè) ActionForm組件類的實(shí)現(xiàn)方法,將會(huì)導(dǎo)致出現(xiàn)大量 的 ActionForm組件類。因?yàn)橐话阍诙鄠€(gè)表單中可能會(huì)有重復(fù)的數(shù)據(jù)項(xiàng)目一一如在用戶登錄表單和注冊(cè)表單中都包含有“用戶名稱”和“用戶密碼” 的數(shù)據(jù)項(xiàng)目。 3)解決的方法 通過(guò)在每個(gè)請(qǐng)求的頁(yè)面表單中放入一個(gè)隱藏( hidden)字段來(lái)標(biāo)識(shí)各個(gè)不同的表單類型,每當(dāng)某個(gè)表單請(qǐng)求后再根據(jù)該隱藏字段的值推斷出請(qǐng)求的頁(yè)面表單的類型。 實(shí)現(xiàn)的示例 1)某個(gè)用戶登陸頁(yè)面表單 為了對(duì)前面所描述的設(shè)計(jì)思想加以具體的實(shí)現(xiàn),在 【例 55】 中給出了一個(gè) 用戶登陸頁(yè)面表單 的示例。 【例 56】 對(duì)應(yīng)的 UserInfoForm 組件類的代碼 示例 public class UserInfoForm extends ActionForm { private String formType。 } public void setFormType (String formType) { = formType。 但是, ActionForm 組件在具體應(yīng)用時(shí) 也存在 一些缺陷 —— ActionForm 組件類與對(duì)應(yīng)的頁(yè)面表單是一種“數(shù)據(jù)綁定”技術(shù)實(shí)現(xiàn)方案 ,使得 ActionForm 組件類 在應(yīng)用方面缺少一定的靈活性 。 對(duì) 所有這些功能的提供,都有助于簡(jiǎn)化 Web 表示層的開(kāi)發(fā)實(shí)現(xiàn)。因?yàn)?從 版開(kāi)始 ,就引入了 虛擬表單ActionForm(DyanActionForm) 組件類 概念。而配置并創(chuàng)建出 DynaActionForm 類的對(duì)象實(shí)例的主要方法是在 配置文件中針對(duì)每一個(gè) HTML 表單以配置的方式定義出所需的虛擬ActionFo
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1