<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
    主站蜘蛛池模板: 成在线人免费无码高潮喷水| 在线看无码的免费网站| 国产成人精品久久亚洲| 中文字幕av无码不卡免费| 亚洲精品午夜在线观看| 日韩精品无码人妻免费视频| igao激情在线视频免费| 亚洲欧洲日本精品| 亚洲精品国产高清嫩草影院| 8x网站免费入口在线观看| 精品在线观看免费| 亚洲精品福利在线观看| 免费va人成视频网站全| 18禁止看的免费污网站| 老司机午夜精品视频在线观看免费 | 四虎在线视频免费观看| 96免费精品视频在线观看| 亚洲人成www在线播放| 亚洲人成人一区二区三区| 免费无码A片一区二三区| 国产精品美女免费视频观看| 亚洲看片无码在线视频| 亚洲国产精品无码专区在线观看| 免费无码又爽又高潮视频| 免费一区二区三区| 美女被免费网站视频在线| 精品亚洲国产成人| 久久久久亚洲AV片无码| 亚洲精品色婷婷在线影院 | 亚洲日韩中文无码久久| 国产国产人免费视频成69大陆| 99视频在线精品免费| 一个人免费观看日本www视频| 亚洲一卡2卡三卡4卡无卡下载| 亚洲韩国—中文字幕| 亚洲国产V高清在线观看| 成人在线视频免费| 中文字幕免费在线看线人| 免费观看久久精彩视频| 九九九精品视频免费| 精品亚洲视频在线|