乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Struts第4天

       liuyang_inf 2014-08-26

      前天學(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.編寫國(guó)際化資源文件

      5.最后在頁(yè)面上顯示錯(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是一樣的,所以就直接拷貝了??词纠?!

       

      1. <!DOCTYPE form-validation PUBLIC   
      2.           "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"   
      3.           "http://jakarta./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>  

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

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

      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)簽庫(kù),個(gè)人認(rèn)為這個(gè)東西用的不多,但是還是要掌握!

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

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

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

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

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

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多