<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 431,  comments - 344,  trackbacks - 0

    使用Springmodules的Commons Validator做驗證需要兩個bean(ValidatorFactoryBeanValidator)及兩xml文件(validator-rules.xmlvalidation.xml)的支持,ValidatorFactory用于制造BeanValidator,后者則是在程序中執行校驗的控制bean。validator-rules.xml中定義了各種驗證的規則,如字段不為空,字段輸入值必須為整數等等,在這里可以自己擴展驗證規則。而validation.xml中則定義了那些bean及bean中的哪些屬性字段需要驗證,使用哪些驗證規則。validate 分為兩級驗證,客戶端驗證(javascript)和服務器端驗證。以下是使用validate的步驟:

    1.       在配置<action>-servlet.xml文件中聲明ValidatorFactoryBeanValidator
    <!-- validation -->
     <bean id="validatorFactory" class="org.springmodules.validation.commons.DefaultValidatorFactory">
        <property name="validationConfigLocations">
            <list>
                <value>WEB-INF/validator-rules.xml</value>
                <value>WEB-INF/validation.xml</value>
            </list>
        </property>
     </bean>
     
     <bean id="beanValidator" class="org.springmodules.validation.commons.DefaultBeanValidator">
         <property name="validatorFactory" ref="validatorFactory"/>
     </bean>
    ①     聲明validatoFactory 這里我們使用DefaultValidatorFactory
    ②     定義其validationConfigLocations屬性,將validator-rules.xml和validation.xml傳入
    ③     聲明beanValidator 這里我們使用DefaultBeanValidator
    ④     在其屬性中指明要使用的validatorFactory 。這里我們使用剛剛定義的validatorFactory
    這里需要注意的是隨著Springmodules版本的不同,DefaultValidatorFactory和DefaultBeanValidator的包路徑有可能不同。

    2.       在需要進行驗證的controller(即要使用form表單或者command的controller)中聲明validate。
    <bean id="compoundMainController" class="com.founder.action.CompoundMainController">
       <property name="formView">
        <value>regcompound</value>
       </property>
       <property name="successView">
        <value>regcompound</value>
       </property>
       <property name="commandClass">
        <value>com.founder.domain.ChemicalInfo</value>
       </property>
       <property name="commandName">
        <value>chemicalInfo</value>
       </property>
       <property name="compoundService">
        <ref bean="compoundService"/>
       </property>
       <property name="validator" ref="beanValidator" />
     </bean>
    ①     commandName 用于指明需要驗證的 command的名字,這個名字必須和 validation.xml中<form name=" xxxxx "> 所寫的名字保持一致。
    ②     commandClass用于指定這個command的類型。其必須與你jsp提交的form最后形成的command類型相一致。
    ③     聲明該controller使用validator,這里將我們剛剛定義的beanValidator傳入進去。

    3.       validation.xml文件中,定義你要校驗的formbean(或者說是command) ,定義這個bean中有哪幾個field需要驗證,使用何種規則驗證。(注意:這里定義的form name 必須和前面controller中定義的commandName保持一致)以下是幾種常用的驗證示例:
            <form name="chemicalInfo">
                <field property="saltForm" depends="maxlength,required">
                    <arg0 key="chemicalInfo.saltForm.displayName" />
                    <arg1 name="maxlength" key="${var:maxlength}" resource="false" />
                    <var>
                        <var-name>maxlength</var-name>
                        <var-value>30</var-value>
                    </var>
                </field>
                <field property="saltNumber" depends="required">
                    <arg0 key="chemicalInfo.saltNumber.displayName" />
                </field>
            </form>
    而validator-rules.xml默認模板可以從下載的spring-modules-0.9.zip(當然你下的版本可能不同)里面的可以找到。

    4.  jsp頁面中定義錯誤信息顯示語句:
    <spring:bindpath="chemicalInfo.*">   -----①
        <c:iftest="${not empty status.errorMessages}">
        <div class="error">  
            <c:forEachvar="error" items="${status.errorMessages}">
                <c:outvalue="${error}"escapeXml="false"/><br/>
            </c:forEach>
        </div>
        </c:if>
    </spring:bind>
    ①      這里的path必須要與傳入該 jsp的bean的名字一樣。如傳入該jsp的數據bean叫chemicalInfo,path就應該寫為chemicalInfo.*。

    5使客戶端產生javascript代碼:
    <v:javascriptformName="chemicalInfo"    -----①
    staticJavascript="false" xhtml="true" cdata="false"/>
    <script type="text/javascript" src="<c:urlvalue="scripts/validator.jsp"/>"></script>
     
    ①      v:javascript標簽是spring的標簽,定義在spring-commons-validator.tld 。其中formName必須與validation.xml中form的name保持一致。
    posted on 2009-01-08 22:54 周銳 閱讀(2431) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 国产精品福利在线观看免费不卡| 亚洲精品美女久久777777| 亚洲福利秒拍一区二区| 国产真人无码作爱视频免费| 国产国拍精品亚洲AV片| 高清永久免费观看| 亚洲色WWW成人永久网址| 光棍天堂免费手机观看在线观看| 亚洲色中文字幕无码AV| 国产成人精品免费久久久久| 亚洲一区二区三区电影| 亚洲精品视频免费看| 亚洲sss综合天堂久久久| 日韩激情无码免费毛片| 男女污污污超污视频免费在线看| 亚洲精品国产电影| 久久精品电影免费动漫| 亚洲黄色三级视频| 国内一级一级毛片a免费| 激情婷婷成人亚洲综合| 国产成人A亚洲精V品无码 | 国产亚洲福利精品一区二区| 又黄又大又爽免费视频| 一级白嫩美女毛片免费| 亚洲AV无码久久精品狠狠爱浪潮| 最近中文字幕国语免费完整| 亚洲国产成人久久99精品| 日本一道综合久久aⅴ免费| 在线播放免费人成视频网站 | 亚洲视频国产精品| 免费高清av一区二区三区| 成人免费网站视频www| 91亚洲国产在人线播放午夜| 最新仑乱免费视频| 亚洲国产免费综合| 亚洲mv国产精品mv日本mv| 亚洲国产香蕉人人爽成AV片久久| 一级毛片aaaaaa免费看| 国产亚洲成在线播放va| 久久久久亚洲AV成人无码网站| 成人最新午夜免费视频|