版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Struts開發(fā)傳智博客struts開發(fā)TIP:為什么學習StrutsMVC設計模式基于MVC設計模式的Servlet+Jsp+JavaBean的WEB應用程序的工作流程?;赟trus的web應用程序的工作流程。為什么要用strus,它給我們帶來了什么?傳智博客struts開發(fā)TIP:Struts開發(fā)快速入門用戶注冊(使用struts完成),步驟:1、編寫register.jsp表單頁面,表單提交RegisterUser.do處理。2、在web工程中導入struts開發(fā)包,在web.xml文件中配置struts框架提供的ActionServlet,使其處理所有以.do為結尾的請求。3、在/WEB-INF/目錄下編寫ActionServlet工作時使用的配置文件struts-config.xml,配置當ActionServlet收到RegisterUser.do請求時,調(diào)用一個名稱為RegisterUse的Action處理。4、編寫Action——RegisterUse,在其excute方法內(nèi)編碼,采用傳統(tǒng)方式獲取數(shù)據(jù),并調(diào)用service完成用戶注冊,然后轉(zhuǎn)發(fā)給相應的jsp頁面。傳智博客struts開發(fā)TIP:讓struts自動封裝請求數(shù)據(jù)Struts的ActionServlet的功能非常強大,我們只需要在它的配置文件(struts-config.xml文件)中配置一下,它就可以自動把請求數(shù)據(jù)封裝到用戶指定的formbean中。并且,struts在調(diào)用開發(fā)人員編寫的action時,會把封裝了數(shù)據(jù)的formbean傳給action。這樣,可以省去開發(fā)人員在action中手工獲取客戶端提交的數(shù)據(jù),減輕編碼工作量。
<form-beans> <form-beanname="UserFormBean"type="cn.itcast.web.formbean.UserFormBean"> </form-bean></form-beans><action-mappings> <actionpath="/RegisterUser"type="cn.itcast.web.action.RegisterUser2" name="UserFormBean"> </action></action-mappings>注意:用于封裝數(shù)據(jù)的formbean要繼承struts的ActionForm。傳智博客struts開發(fā)TIP:讓struts轉(zhuǎn)發(fā)請求用戶在編寫action時,無須在action內(nèi)手工編碼進行請求轉(zhuǎn)發(fā)。struts的ActionServlet在調(diào)用action.execute方法時,可以根據(jù)它的返回值,決定調(diào)用哪個JSP頁面響應用戶請求。Action.execute方法的返回值ActionForward代表一個轉(zhuǎn)發(fā)對象,struts的ActionServlet在收到Action.execute方法的返回值——ActionForward后,會取出該對象封裝的轉(zhuǎn)發(fā)地址,進行請求轉(zhuǎn)發(fā)。ActionActionServletActionForwardJSP傳智博客struts開發(fā)TIP:讓struts根據(jù)配置實現(xiàn)轉(zhuǎn)發(fā)在struts的配置文件struts-config.xml文件中,可以配置forward標簽,它用于封裝一個轉(zhuǎn)發(fā)地址。如:
<forwardname=“success"path="/success.jsp"/>Struts的ActionServlet在調(diào)用action時,會把action的配置信息封裝一個ActionMapping對象中,并傳遞給action。因此,開發(fā)人員在編寫action時,無須硬編碼指定轉(zhuǎn)發(fā)地址,可以通過ActionMapping對象,獲得配置文件中配置的轉(zhuǎn)發(fā)地址,從而實現(xiàn)轉(zhuǎn)發(fā)。如下圖:傳智博客struts開發(fā)TIP:讓struts根據(jù)配置實現(xiàn)轉(zhuǎn)發(fā)ActionServletactionActionMappingStruts-config.xml<actionpath="/RegisterUser" type="cn.itcast.web.action.RegisterUser" name="UserFormBean"> <forwardname="success"path="/success.jsp"/> <forwardname="failure"path="/success.jsp"/></action>請求封裝配置信息傳智博客struts開發(fā)*.doactionServletStruts-config.xmlactionformbeamactionMappingactionforwardjsp傳智博客struts開發(fā)Web服務器Web.xmlActionServletActionActionFrom1、web服務器收到請求后,把請求派發(fā)給struts的servlet進行處理。2、ActionServlet讀取配置文件,根據(jù)請求的path創(chuàng)建相應的action實例對象,3、根據(jù)配置文件創(chuàng)建封裝請求參數(shù)的ActionForm對象。4、創(chuàng)建代表當前Action配置信息的ActionMapping對象。5、調(diào)用Action實例的execute方法,并把ActionForm和ActionMapping對象傳遞進去。6、ActionServlet根據(jù)execute方法的返回值ActionForward封裝的轉(zhuǎn)發(fā)信息,把請求轉(zhuǎn)發(fā)到相應的JSP頁面顯示。Struts-config.xmlActionMappingActionForwardActionForwardJSP傳智博客struts開發(fā)TIP:讀struts源碼,分析struts工作流程Struts的控制器組件主要包括(課后一定讀源碼)ActionServlet對象:Struts的核心類RequestProcessor對象:由ActionServlet調(diào)用,負責處理用戶請求Action對象:用戶自己編寫的類Struts處理請求的流程:當ActionServlet接收到HTTP請求后,在doGet或doPost方法中都會調(diào)用process()方法處理請求在ActionServlet的process()方法中一旦選擇了正確的子應用模塊,就會調(diào)用RequestProcessor實例的process()方法來處理請求。在ActionServlet調(diào)用這個方法時,會把當前的request和response對象傳給它RequestProcessor實例的process()方法調(diào)用ProcessActionCreate()方法,先判斷是否在Action緩存中存在Action實例,如果不存在,就創(chuàng)建一個Action實例,把它保存在Action緩存中RequestProcessor實例的process()方法調(diào)用Action實例的execute()方法傳智博客struts開發(fā)TIP:Struts配置文件常用屬性<action path=“/register“type=“cn.itcast.RegisterAction"name=“UserFormBean“scope="request"attribute=“myformbean"input="/register.jsp"
forward=“welcome.jsp“ include="welcome.jsp"
unknown=“true" parameter=“method” classname=“” validate="true"> <forwardname="hello" path="/success.jsp"/></action>指定action處理的地址指定處理請求的Action的完整類名指定使用哪個formbean封裝請求參數(shù)指定把formbean存放到哪個域?qū)ο笾?默認session指定formbean存儲的key,不設默認為name屬性的值指定把formbean的數(shù)據(jù)是由哪個頁面提供的,提供此屬性的目的在于formbean校驗失敗時,程序方便跳回formbean的輸入頁面,顯示校驗失敗信息。指定收到請求時,跳轉(zhuǎn)到相應的jsp頁面,如果配置了此屬性,則action將不再被調(diào)用。相當于ServletUI指定收到請求時,進行頁面包含。如果action把該屬性設置為true,則它可以處理客戶機發(fā)出的所有無效的.do請求,默認值為false,用于處理錯誤頁面配置action參數(shù),調(diào)用actioMapping.getParameter方法可以獲得這里配置的參數(shù)。<action>標簽和所有的配置信息使用哪個對象封裝,默認值為ActionMapping對象。請求參數(shù)封裝到formbean中后,是否讓struts自動調(diào)用formbean的validate方法進行數(shù)據(jù)校驗。默認true傳智博客struts開發(fā)TIP:補充知識點嚴格按照MVC設計模式改進注冊用例,需求:Web應用程序若要嚴格按照MVC設計模式,所有客戶端的請求都需要發(fā)送給servlet處理,servlet再轉(zhuǎn)發(fā)到JSP顯示。因此,對于上述案例中的register.jsp頁面,也要禁止用戶直接訪問,而應把它放在web-inf目錄中保護起來,由用戶訪問servlet后,servlet再轉(zhuǎn)發(fā)到register.jsp頁面上。傳統(tǒng)做法和Struts的做法。在首頁上掛上注冊功能<html:link>標簽的好處:也有壞處使用<html:linkaction=“/action”/>不用關心web應用程序的名稱??梢宰詣痈郊觠sessionid參數(shù)進行url重寫??梢詫?shù)信息進行url編碼。<html:link>標簽常用屬性:paramID、paramName、name、property。傳智博客struts開發(fā)TIP:補充知識點<html:link>標簽示例:傳智博客struts開發(fā)TIP:借助struts完成表單校驗表單數(shù)據(jù)提交后,在服務器端編程校驗數(shù)據(jù)合法性,是一個很常見的需求。所以struts的ActionServlet在把數(shù)據(jù)封裝到formbean后,會自動調(diào)用formbean的validate方法對數(shù)據(jù)進行校驗,并根據(jù)validate方法的返回值,決定轉(zhuǎn)發(fā)到哪個jsp頁面處理。Stuts的這種處理方式,可以讓開發(fā)人員少死點腦細胞,開發(fā)人員只需要在validate方法中寫代碼進行數(shù)據(jù)校驗就OK了,調(diào)用方法的事由struts的actionServlet去做了,并且,調(diào)用方法完后,如果有錯誤,跳轉(zhuǎn)的事,也由struts根據(jù)配置文件做了。注意:若想struts的actionServlet把數(shù)據(jù)封裝到formbean后,調(diào)用其validate方法,需要在struts-config.xml文件中把action的validate屬性設置為true,默認值為true。傳智博客struts開發(fā)TIP:借助struts完成表單校驗Struts調(diào)用formbean.validate方法后,其規(guī)則為:如果validate返回的ActionErrors對象為空或null,則Struts認為表單驗證通過,struts進而繼續(xù)調(diào)用Action處理請求。如果validate返回的ActionErrors不為空,并且封裝了數(shù)據(jù),則認為校驗失敗,Struts將自動跳轉(zhuǎn)回表單輸入頁面。(input屬性指定)因此用戶若想校驗失敗,只需要創(chuàng)建ActionErrors對象,并調(diào)用其方法:ActionErrors.add(Stringkey,ActionMessagemessage)
向ActionErrors對象中加入相應的錯誤消息,返回給struts即可。示例代碼:傳智博客struts開發(fā)TIP:在JSP中顯示校驗信息Struts在收到Formbean的返回值ActionErrors后,會將其存儲到request域中,進而帶給表單頁面,以便開發(fā)人員在表單頁面中顯示校驗失敗的錯誤信息(這點建議讀讀struts的源碼)。在JSP頁面中開發(fā)人員可以編碼顯示錯誤信息:注意上面的代碼取request的errors對象時為什么用“org.apache.struts.action.ERROR”,這個值從何來?顯示消息時有需要在struts-config.xml文件中配置一個資源文件
<message-resourcesparameter="MessageResource"/>傳智博客struts開發(fā)TIP:使用<html:errors>顯示校驗消息在JSP頁面中手工編碼獲取errors對象中保存的數(shù)據(jù)很麻煩,因此Struts編寫了<html:errors>標簽,它用于封裝JSP頁面中用于獲取消息的java代碼。用戶使用<html:errors>標簽可以很輕松獲取到errors中保存的校驗信息,示例。<html:errors>標簽也可以以ActionMessage中封裝了key為關鍵字,從資源文件中檢索數(shù)據(jù)予以顯示,如下所示:取消false,html:errors標簽在顯示ActionMessage封裝的消息時,將以ActionMessage的key為關鍵字從資源文件中檢索數(shù)據(jù)顯示看看<html:errors>標簽源碼,看errors標簽是如何以關鍵字檢索資源文件數(shù)據(jù)的。注意:errors標簽工作時需要資源文件。傳智博客struts開發(fā)TIP:ActionMessageActionMessage封裝消息的方式很靈活,后面兩個構造函數(shù)中的value參數(shù),用于替換消息文本中的占位符:對應資源文件內(nèi)容:errors.required={0}不能為空傳智博客struts開發(fā)TIP:練習完成對Register.jsp頁面的完整校驗傳智博客struts開發(fā)TIP:練習privateStringusername;privateStringpassword;privateStringpassword2;privateStringgender;privateStringbirthday;privateStringincome;privateStringcity;privateString[]preference;privateStringemail;傳智博客struts開發(fā)TIP:練習注意事項:日期校驗不要采用DateFormat,而應采用: DateLocaleConverterdlc=newDateLocaleConverter(); Dated=(Date)dlc.convert(this.birthday,"yyyy-mm-dd");對于頁面中的數(shù)據(jù),可采用枚舉類表示,對枚舉值的校驗可采用如下類似方式:
Gender.valueOf(this.gender);傳智博客struts開發(fā)TIP:使用Struts標簽完成表單數(shù)據(jù)回顯Struts提供了很多表單相關的自定義標簽,如:<html:text><html:radio><html:select><html:option><html:checkbox><html:multibox><html:textarea>……這些標簽除用于生成相應的html標簽外,最大的好處在于它在產(chǎn)生html標簽時,會自動檢索相應formbean的數(shù)據(jù)予以顯示,這樣,當表單校驗失敗時,表單數(shù)據(jù)的回顯struts幫我們干了,開發(fā)人員就不需要再編碼去取了。傳智博客struts開發(fā)TIP:使用Struts標簽完成數(shù)據(jù)回顯使用Struts的html標簽完成數(shù)據(jù)回顯時注意的問題:html標簽回顯數(shù)據(jù)時,會以org.apache.struts.taglib.html.BEAN為關鍵字,從各個域中查找bean,找不到則拋空指針異常。所以使用html標簽時域中須有以org.apache.struts.taglib.html.BEAN為關鍵字的對象。這個工作可以交給html:form標簽做,html:form標簽在執(zhí)行時,會查找域中已有的formbean,并以org.apache.struts.taglib.html.BEAN為關鍵字把formbean存在域中。如果html:form標簽在域中找不到formbean,則html:form標簽會實例化一個空bean,然后存儲到域中。因此,為了在頁面中使用struts的html標簽回顯數(shù)據(jù),這些標簽需要配合html:form標簽使用。(查看html:form標簽的源文件可以看到這點)。對于復選框中的數(shù)據(jù),Html:checkbox標簽不能完成數(shù)據(jù)回顯,復選框的數(shù)據(jù)回顯需要使用html:multibox。Struts中的html:password標簽也會回顯數(shù)據(jù),如果不想password回顯,需要把其redisplay屬性置為false。補充:formbean的reset方法傳智博客struts開發(fā)html產(chǎn)生一個<html>標簽。也包括來自于用戶會話中的language屬性form定義一個表單。Action和focus屬性是最有用的屬性checkbox產(chǎn)生一個檢查框字段file產(chǎn)生一個文件選擇輸入字段hidden產(chǎn)生一個隱藏字段option產(chǎn)生一個選擇項options產(chǎn)生一個選擇項列表password產(chǎn)生一個口令輸入字段radio產(chǎn)生一個單選輸入字段select產(chǎn)生一個選擇元素text產(chǎn)生一個文本輸入字段textarea產(chǎn)生一個html文本區(qū)域元素image產(chǎn)生一個圖像輸入字段button產(chǎn)生一個按鈕輸入字段cancel產(chǎn)生一個取消按鈕submit產(chǎn)生一個提交按鈕reset產(chǎn)生一個重新設定按鈕errors顯示錯誤消息img產(chǎn)生一個htmlimg標簽傳智博客struts開發(fā)TIP:請求數(shù)據(jù)的中文亂碼問題解決方案:過濾器重寫ActonServlet重寫RequestProcessor傳智博客struts開發(fā)TIP:防止表單重復提交什么情況下會發(fā)生表單重復提交刷新網(wǎng)絡延時,多次點擊后退、前進防止表單重復提交的原理表單應由一個程序產(chǎn)生,程序在產(chǎn)生表單時:生成一個隨機值,并附在表單的一個隱藏輸入項中。把隨機值存儲在session域中。表單在提交時,服務器程序客戶機帶過來的隨機值和session域中保存的隨機值是否一致,如果一致則允許提交,否則認為是重復提交。傳智博客struts開發(fā)TIP:使用struts防止表單重復提交Struts的<html:form>標簽除了可以生成<form>標簽、協(xié)助其它html標簽完成數(shù)據(jù)回顯外,它還提供了防止表單重復提交的功能。<html:form>標簽在生成表單時,會檢查session域中是否存在token,如果存在則自動使用token生成隱藏字段。Struts為方便開發(fā)人員生成token,在action中提供了saveToken方法,調(diào)用這個方法就可以在session域中保存一個token。Struts為方便開發(fā)人員在action中校驗用戶是否為重復提交,因此它在action中也提供了isTokenValid方法,該方法會自動判斷表單是否為重復提交。防表單重復提交在struts中的做法:1、用戶先訪問Action,Action中調(diào)用saveToken方法,然后派發(fā)到表單頁面。2、在表單頁面中使用<html:form>標簽,<html:form>標簽會自動為表單生成一個帶隨機值的隱藏字段。3、在表單提交的Action中調(diào)用isTokenValid方法,就可以判斷出表單是否為重復提交,從而可以根據(jù)情況決定如何處理。isTokenValid方法返回true,則為允許提交,處理提交后,要記得調(diào)用reset清除token。傳智博客struts開發(fā)TIP:使用beanUtils轉(zhuǎn)換表單數(shù)據(jù)表單校驗通過后,需把formbean的數(shù)據(jù)封裝到實體bean中,此時應采用beanUtils框架,并注冊相應的轉(zhuǎn)換器。為避免在多個Action中重復注冊轉(zhuǎn)換器,可采用listener在web應用啟動時就注冊轉(zhuǎn)換器。傳智博客struts開發(fā)TIP:表單數(shù)據(jù)業(yè)務邏輯校驗表單數(shù)據(jù)校驗通過后,在action中可能會對數(shù)據(jù)進行業(yè)務邏輯驗證,例如檢查當前注冊用戶是否已經(jīng)被別人注冊過了,這種驗證稱為業(yè)務邏輯驗證。業(yè)務邏輯驗證如果失敗,其相應的信息也應顯示在頁面上。傳智博客struts開發(fā)TIP:表單數(shù)據(jù)業(yè)務邏輯校驗很多網(wǎng)站也會提供如下圖所示的驗證方式:傳智博客struts開發(fā)TIP:使用struts修改數(shù)據(jù)程序取出數(shù)據(jù)庫中的數(shù)據(jù),顯示在一個表單頁面上,以便于用戶修改數(shù)據(jù),這也是開發(fā)中經(jīng)常需要實現(xiàn)的功能。實現(xiàn)此功能需要注意的問題:為回顯數(shù)據(jù)方便,通常在頁面中都會使用struts的html標簽。而程序調(diào)用dao取出的數(shù)據(jù)通常放在實體bean中,要想在頁面中使用html標簽取出數(shù)據(jù)顯示,此時應把實體bean的數(shù)據(jù)又轉(zhuǎn)換到表單bean中,對于復雜類型的數(shù)據(jù),此時就需要在beanutils框架中注冊數(shù)據(jù)的雙向轉(zhuǎn)換器了。數(shù)組類型是比較特殊的類型,進行類型判斷是可以采用如下方式:clazz.equals(Object[].class)獲取到的Bean為在頁面中顯示,還需要把bean存放在request域中,存放的關鍵字可以使用action上配置的formbean的名稱。注意:在action如果向request域存formbean,這個formbean想在jsp頁面中顯示,配置文件中的scope要配成request,不然頁面會先從session找,而session中有一個空bean。傳智博客struts開發(fā)TIP:struts文件上傳文件的上傳操作:JSP頁面:表單使用POST提交方式,添加enctype="multipart/form-data"屬性ActionForm中使用org.apache.struts.upload.FormFile
類型定義文件字段導入struts-1.3.8\lib\commons-和commons-io-1.1.jar在Action的execute()方法中使用InputStreamis=();方法得到文件的輸入流再使用io的方法對文件進行上傳操作.傳智博客struts開發(fā)TIP:struts文件上傳注意事項在formbean中定義FormFile類型的成員變量接收瀏覽器上傳的文件。只要在Formbean中定義一個FormFile類型的變量,struts框架會自動把文件上傳的內(nèi)容變成FormFile對象并注入進來,即使沒有上傳文件,對應的FormFile變量也會有值,只是得到文件名為””和文件大小為0。中文文件上傳問題過濾器解決設置上傳文件的最大值:在配置文件里面配置注意:如果上傳文件超出了最大值,struts不會把上傳數(shù)據(jù)封裝到FormFile中,即c為null,程序根據(jù)FormFile是否為空,就可提示用戶文件是否超出大小。多文件上傳問題DownloadAction提供下載。傳智博客struts開發(fā)TIP:DispatchAction需求:客戶端每個請求都對應服務器端一個Action,會導致服務器端action過多,維護困難。在Struts中允許多個請求對應一個Action,例如對Book對象的增刪改查操作,可以交給一個Action處理,Action根據(jù)請求地址中附加的參數(shù)信息,再派發(fā)到相應的方法,例:
<html:linkaction=“/BookAction?method=add”>增加書籍</html:link> <html:linkaction=“/BookAction?method=update”>修改書籍</html:link> <html:linkaction=“/BookAction?method=find”>查找書籍</html:link> <html:linkaction=“/BookAction?method=delete”>刪除書籍</html:link>傳智博客struts開發(fā)TIP:DispatchActionStruts中的DispatchAction提供了此類功能,它可以根據(jù)請求的參數(shù),調(diào)用不同的方法,但要注意的是開發(fā)人員在聲明參數(shù)對應的方法時,方法的簽名需要與execute()方法一致。例:注意Struts中的DispatchAction并不知道用戶的參數(shù)是以什么名稱提交的,因此若想DispatchAction能正常調(diào)用到用戶自定義的方法,用戶需要在action的配置文件中通過parameter屬性告訴給struts。課后看看源碼:分析DispatchAction是如何調(diào)用用戶自定義方法的傳智博客struts開發(fā)TIP:DispatchAction注意事項:DispatchAction是Action的子類,它重寫了Action的execute方法,因此用戶繼承DispatchAction時,若想使用DispatchAction提供的分發(fā)功能,切記不可覆蓋其execute方法。DispatchAction位于struts的擴展包中,即struts-1.3.8\lib\struts-extras-1.3.8.jar。傳智博客struts開發(fā)TIP:MappingDispatchActionMappingDispatchAction是DispatchAction的子類,它提供的功能和DispatchAction功能類似,它也允許多個請求對應一個Action,但它的實現(xiàn)方式更加靈活,如圖:MappingDispatchAction可以配置到多個地址上,比DispatchAction更加直觀,并且也可使用不同的formbean,但缺點是使配置文件過于復雜。補充知識點:讓struts擁有多個配置文件。傳智博客struts開發(fā)TIP:動態(tài)FormBeanStruts允許開發(fā)人員在配置文件中聲明一個formbean,而無須手工針對每一個表單設計一個Formbean。步驟:
1、配置一個<form-bean>元素,將type屬性設置為DynaActionForm。
2、<form-bean>的<form-property>子元素用來設置動態(tài)ActionForm的屬性。
<form-property>元素的name屬性指定屬性名,type指定屬性類型
<form-beanname="dynaForm" type="org.apache.struts.action.DynaActionForm"> <form-propertyname=“username"type="java.lang.String"/> <form-propertyname=“birthday"type="java.lang.String"/> <form-propertyname=“preference"type="java.lang.String[]"/> <form-propertyname=“email"type="java.lang.String"/> </form-bean> 3、使用DynaActionForm類的publicObjectget(Stringname);訪問字段的值傳智博客struts開發(fā)TIP:集成FckEditorFCKeditor是一款非常優(yōu)秀的HTML在線編輯器,功能也可以定制.也支持多種瀏覽器,遵循LGPL版權。最新版本的FCKeditor(2.3.2)同時兼容絕大多數(shù)主流瀏覽器,包括:IE5.5及以上版本(windows),火狐Firefox1.0及以上版本,遨游Mozilla1.3及以上版本,網(wǎng)景7.0及以上版本。集成步驟參看fckeditor的例程1、在web工程下新建JS目錄,并拷貝fckeditor到該目錄中。2、導入fckeditor.js文件。3、在表單中加入如下代碼:<scripttype="text/javascript">varoFCKeditor=newFCKeditor(‘resume’);//重要,fckeditor產(chǎn)生的輸入項名稱oFCKeditor.BasePath='${pageContext.request.contextPath}/js/fckeditor/';oFCKeditor.Height=300;oFCKeditor.Value='';oFCKeditor.Create();</script>數(shù)據(jù)回顯問題傳智博客struts開發(fā)TIP:Struts-Validate框架Validator(驗證器)框架是一個Struts插件,它支持采用聲明式的方式對表單進行校驗,而不需要用戶編寫一行Java代碼。集成validate框架,Struts那哥們他幫你校驗了表單,而且客戶端也校驗,比如javascript校驗他也幫你校驗了使用Validator框架的好處:更好的可維護性校驗實現(xiàn)標準化正確的實現(xiàn)更少的代碼重復自動客戶端驗證傳智博客struts開發(fā)TIP:Struts-Validate框架解壓Struts的例子struts-cookbook-1.3.8,部署到web服務器中,查看例子體驗。在工程中集成validate框架,你需要查看org.apache.struts.validator包下的validator-rules.xml文件,它是validate框架的校驗規(guī)則文件,這個文件說明了如何在struts工程中集成validate框架:1、在struts-config.xml文件中配置validate插件。2、創(chuàng)建資源文件,并復制validate框架工作需要的信息。3、把struts-cookbook-1.3.8例程自帶的、validate框架的配置文件validation.xml,復制到當前web工程的WEB-INF目錄下。validate框架環(huán)境搭建好后,就可以采用配置的方式對formbean的屬性進行校驗,但需要注意:1、formbean要想使用validate框架校驗,不能直接繼承ActionForm,而要繼承其子類ValidatorForm。2、如果是DynaActionForm,就必須要繼承DynaValidatorForm傳智博客struts開發(fā)TIP:Struts-Validate框架(valiate-rule)……<form-validation><global><validatorname="required"classname="org.apache.struts.validator.FieldChecks"method="validateRequired"methodParams="java.lang.Object,mons.validator.ValidatorAction,mons.validator.Field,org.apache.struts.action.ActionMessages,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年份餐飲廢棄物處理承包協(xié)議3篇
- 2025版挖掘機械銷售代理合同模板
- 二零二五年度哺乳期離婚雙方子女保險權益轉(zhuǎn)移協(xié)議2篇
- 2024證券公司與其合作方之間國際證券交易合同
- 二零二五版領養(yǎng)未成年人監(jiān)護責任協(xié)議參考4篇
- 二零二五版園林景觀木工施工合作協(xié)議4篇
- 二零二五版合伙房產(chǎn)買賣合同及配套裝修設計服務6篇
- 2025年度特種運輸服務買賣合同安全與時效承諾
- 2025版彩禮退還與婚姻解除條件及財產(chǎn)分割協(xié)議書范本3篇
- 基于2025年度規(guī)劃的文化園區(qū)停車場建設與運營合同3篇
- 柴油墊資合同模板
- 湖北省五市州2023-2024學年高一下學期期末聯(lián)考數(shù)學試題
- 城市作戰(zhàn)案例研究報告
- 【正版授權】 ISO 12803:1997 EN Representative sampling of plutonium nitrate solutions for determination of plutonium concentration
- 道德經(jīng)全文及注釋
- 2024中考考前地理沖刺卷及答案(含答題卡)
- 多子女贍養(yǎng)老人協(xié)議書范文
- 安踏運動品牌營銷策略研究
- 彩票市場銷售計劃書
- 骨科抗菌藥物應用分析報告
- 支付行業(yè)反洗錢與反恐怖融資
評論
0/150
提交評論