免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Struts第4天

前天學(xué)習(xí)了struts的編程式驗(yàn)證,今天學(xué)習(xí)struts內(nèi)置的配置式的驗(yàn)證方式,那么,為什么要用這種方式來驗(yàn)證呢?

其實(shí),我們會(huì)發(fā)現(xiàn)struts的編碼方式驗(yàn)證呢會(huì)有一些缺點(diǎn),第一就是不夠靈活,第二是將驗(yàn)證和驗(yàn)證規(guī)則耦合在一起了,還違反了開閉原則,當(dāng)我們使用了struts的validate驗(yàn)證框架的時(shí)候會(huì)發(fā)現(xiàn)使用起來靈活的多,如果添加新的屬性,只需要增加配置文件的屬性驗(yàn)證就行了。

Validate驗(yàn)證框架

首先,我們需要做一些準(zhǔn)備工作:

Validator框架依賴包:

  1)jakarta-oro.jar:文本處理類,文本的替換,分割和過濾

  2)commons-validator.jar:包含一些通用的驗(yàn)證規(guī)則

需要的配置文件:

  1)validator-rules.xml:包含通用驗(yàn)證規(guī)則

  2)validation.xml:針對(duì)具體Struts應(yīng)用驗(yàn)證規(guī)則

了解validator-rules.xml:

  1)name:驗(yàn)證規(guī)則名稱

  2)classname:處理類的權(quán)限類型

  3)method:實(shí)現(xiàn)驗(yàn)證規(guī)則方法

  3)methodParams:實(shí)現(xiàn)驗(yàn)證規(guī)則方法的參數(shù)列表

  4)msg:消息資源文件的key

 5)depends:依賴驗(yàn)證規(guī)則  

使用validate驗(yàn)證框架的步驟:

1.先在struts-config.xml文件里面加入插件信息

2.修改formbean的繼承為ValidatorForm

3.編寫validator.xml,它的驗(yàn)證規(guī)則跟validator-rules.xml的dtd是一樣的

4.編寫國際化資源文件

5.最后在頁面上顯示錯(cuò)誤信息

好了,我們現(xiàn)在按照這種步驟來做!

第一步,先在struts-config.xml里面加入插件信息,示例代碼:

  1. <struts-config>  
  2.   <data-sources />  
  3.   <form-beans>  
  4.     <form-bean name="login" type="com.lovo.form.LoginForm"></form-bean>   
  5.   </form-beans>  
  6.   <global-exceptions />  
  7.   <global-forwards />  
  8.   <action-mappings>  
  9.     <action path="/login" type="com.lovo.action.LoginAction" name="login" validate="true" input="/login.jsp">  
  10.         <forward name="success" path="/index.jsp"></forward>  
  11.         <forward name="error" path="/login.jsp"></forward>  
  12.     </action>  
  13.   </action-mappings>  
  14.   <message-resources parameter="com.lovo.struts.ApplicationResources" />  
  15.    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">  
  16.         <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>  
  17.    </plug-in>  
  18. </struts-config>  

第二步,這里必須將插件信息加在mappings后面,還有action的validate屬性必須配置哦!input當(dāng)然也要了!這樣才會(huì)去調(diào)用驗(yàn)證框架。然后呢,修改formbean對(duì)象繼承為ValidatorForm這類,示例:

  1. public class LoginForm extends ValidatorForm  
  2.     private String name;  
  3.     private String pwd;  
  4.   正如你看到的,這個(gè)類里面沒有validate方法,但是系統(tǒng)還是會(huì)去調(diào)用驗(yàn)證框架的。

第三步,編寫varlidator.xml文件,這個(gè)文件因?yàn)槭窃诩尤氩寮臅r(shí)候就已經(jīng)把名字給定義了,所以,這里我們還是以validator.xml這個(gè)文件為例,它呢,保存在WEB-INF下面的,因?yàn)樗膁td跟varlidator-rules.xml這個(gè)dtd是一樣的,所以就直接拷貝了??词纠桑?/p>

 

  1. <!DOCTYPE form-validation PUBLIC  
  2.           "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"  
  3.           "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">  
  4.   
  5. <form-validation>  
  6.     <formset>  
  7.         <form name="login"><!-- 要驗(yàn)證的formbean的name,這里跟struts-config.xml里面的formbean的name一致 -->  
  8.         <!-- property是指要驗(yàn)證的具體屬性名,這里跟formbean里面的屬性名一致  
  9.            depends是指驗(yàn)證規(guī)則具體參考validator-rules.xml里面的name對(duì)應(yīng)這里對(duì)非空和最小值和最大值做了驗(yàn)證,多個(gè)驗(yàn)證規(guī)則用,號(hào)隔開,  
  10.          -->  
  11.             <field property="name" depends="required,minlength,maxlength">  
  12.                 <arg0 key="login.name"/><!-- 這里是指第0個(gè)占位符(形參)的key是login.name,根據(jù)這個(gè)會(huì)去資源文件里面找login.name所對(duì)應(yīng)的value值,然后將其填充到占位符中 -->  
  13.                 <arg1 key="${var:minlength}" resource="false"/><!-- 這里key是指第2個(gè)形參的的值對(duì)應(yīng)下面var的name值,首先resource=false是指將不會(huì)去資源文件里面找形參了,而會(huì)在當(dāng)前文件里面找,這里我們會(huì)配置一個(gè)var的屬性來確定第二個(gè)形參的值 -->  
  14.                 <arg2 key="${var:maxlength}" resource="false"/>  
  15.                 <var>  
  16.                     <var-name>minlength</var-name><!-- 這里的var-name是指validator-rules.xml的name -->  
  17.                     <var-value>2</var-value><!-- 形參的值 -->  
  18.                 </var>  
  19.                 <var>  
  20.                     <var-name>maxlength</var-name>  
  21.                     <var-value>10</var-value>  
  22.                 </var>  
  23.             </field>  
  24.         </form>  
  25.         </formset>  
  26.         </form-validation>  

具體的地方都加了注釋,這里不再詳說。

第四步,編寫國際化資源文件,剛剛在varlidator.xml里面多次提到了國際化文件,那么這個(gè)文件到底有什么作用呢?大家可以跟我來看看哈!ComeON!

errors.required={0}\u4E0D\u80FD\u4E3A\u7A7A\uFF01
errors.minlength={0}\u6700\u5C0F\u4E3A\u6570{1}
errors.maxlength={0}\u6700\u5927\u4F4D\u6570{2}

login.name=\u7528\u6237\u540D
login.pwd=\u5BC6\u7801

這里呢,errors.required這個(gè)key值其實(shí)是varlidator-rules.xml里面的msg對(duì)應(yīng),后面的value值是指要顯示的錯(cuò)誤信息,{0}是指validator.xml里面的arg第幾個(gè)如果是arg0,就是{0},這樣來填充占位符,其實(shí),這里我們也可以把這里的{0}想成我們?cè)趯W(xué)JDBC的時(shí)候,里面的preparedstatments里面的填充?號(hào)的值,其實(shí)是一個(gè)道理。

最后的login.name是指要填充的具體內(nèi)容,它跟varlidator.xml里面的arg幾的具體參數(shù)為準(zhǔn),一般都是resource="true"的時(shí)候才來這里面讀取,因?yàn)檫@里我是使用utf-8的格式,所以看起來有點(diǎn)看不懂,其實(shí)就是中文。

第五步,顯示錯(cuò)誤信息,示例代碼:

顯示錯(cuò)誤信息,跟前天的顯示是一樣的,具體請(qǐng)參看前天的博客內(nèi)容,這里稍微提下,就是html-errors里面的property的值為validator.xml里面的field的name值,也就是屬性名!

 最后是struts的標(biāo)簽庫,個(gè)人認(rèn)為這個(gè)東西用的不多,但是還是要掌握!

struts-html主要替換原來的html標(biāo)簽

struts-bean 主要是用于輸出國際化資源文件,重要的是writer和message還有一點(diǎn)就是創(chuàng)建和復(fù)制define

struts-logic主要用于邏輯判斷控制流程Internet 和 equal 循環(huán)和比較

struts-tiles 主要是為了創(chuàng)建網(wǎng)頁模板感覺用處不大

好了先總結(jié)到此!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Validator驗(yàn)證框架使用教程
Struts Validator驗(yàn)證器使用指南
Struts的驗(yàn)證--Validator
使用AJAX的Struts驗(yàn)證框架
Struts2――表單驗(yàn)證
用Struts Validator檢查你的表單
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服