posts - 36,comments - 31,trackbacks - 0

             利用Struts的靜態(tài)數(shù)據(jù)驗(yàn)證方法可以對(duì)用戶在表單上輸入的數(shù)據(jù)進(jìn)行驗(yàn)證,包括數(shù)據(jù)類型是否正確、是否可空等。方法如下:

              1、在struts-config.xml文件中加入

                   <message-resources parameter="ApplicationResources" />

                   <plug-in className="org.apache.struts.validator.ValidatorPlugIn">

                     <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />

                   </plug-in>

                 其中parameter="ApplicationResources"意味著在java源代碼根部,src/下有一屬性文件ApplicationResources.properties,但為了能顯示中文件信息

                 src/下還應(yīng)有文件ApplicationResources_zh_CN.properties 兩文件最后打包到WEB-INF/classes下。

              2、利用開(kāi)發(fā)工具在WEB-INF/下導(dǎo)入validator-rules.xmlvalidation.xml文件。這是有關(guān)驗(yàn)證規(guī)則及驗(yàn)證內(nèi)容的配置文件。

              3、為表單屬性加入中文說(shuō)明,如有個(gè)formBean,名為form1,有三個(gè)屬性,nameheightborn,分別是姓名、身高、出身日期

                 ApplicationResources.properties文件中加入屬性的解釋說(shuō)明:

                     errors.integer={0} 必須為整型值,請(qǐng)注意編輯框內(nèi)不能有空白字符串

                     errors.date={0} 日期格式錯(cuò)誤,應(yīng)為 2004-03-23 2004-03-23 00:00:00.0 (00:00:00.0 為時(shí)::.毫秒)

                     # form1

                     form1.name.displayname=姓名

                     form1.height.displayname=身高

                     form1.born.displayname=出身日期

                 第一、二行不是必須的,但有意義。

                 打包前執(zhí)行下列批處理 native2ascii ApplicationResources.properties ApplicationResources_zh_CN.properties,目的是由文件ApplicationResources.properties

                 產(chǎn)生新文件ApplicationResources_zh_CN.properties,以便能正確顯示漢字,這個(gè)新文件也在src/下。

              4、為了驗(yàn)證用戶在填寫(xiě)表單時(shí)輸入的數(shù)據(jù),在validation.xml文件的<formset></formset>之間加入如下內(nèi)容

                    <form    name="form1">

                       <field    property="name"

                               depends="required">

                                 <arg0 key="form1.name.displayname"/>

                       </field>

                       <field    property="height"

                               depends="integer">

                                 <arg0 key="form1.height.displayname"/>

                       </field>

                       <field    property="born"

                               depends="required,date">

                                 <arg0 key="form1.born.displayname"/>

                                   <var>

                                     <var-name>datePatternStrict</var-name>

                                     <var-value>yyyy-MM-dd</var-value>

                                   </var>

                       </field>

                    </form>

              5、在jsp頁(yè)面上,在</body>前加入strus標(biāo)簽:

                    <html:javascript formName="form1" dynamicJavascript="true" staticJavascript="true"/>

              經(jīng)過(guò)以上準(zhǔn)備,不管是用struts<html:form></html:form>標(biāo)簽還是用newxy<nhtml:form></nhtml:form>標(biāo)簽,在客戶端用戶提交數(shù)據(jù)前都可以進(jìn)行驗(yàn)證。

              但如果用struts<html:form></html:form>標(biāo)簽,應(yīng)加入onsubmit事件,如:

                    <html:form action="/myAction.do?method=update" onsubmit="return validateForm1(this);">

                      ....

                      <html:submit value=" 提交 " />

                    </html:form>

           

          posted on 2007-06-25 16:34 心隨我動(dòng) 閱讀(334) 評(píng)論(0)  編輯  收藏 所屬分類: 框架

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          網(wǎng)站流量統(tǒng)計(jì):
          澳大利亞 ABC 在線英語(yǔ)廣播電臺(tái)
          主站蜘蛛池模板: 林西县| 沈阳市| 衡南县| 安徽省| 乌拉特中旗| 黄龙县| 清苑县| 辽宁省| 新田县| 万源市| 沂水县| 邓州市| 民勤县| 奎屯市| 平谷区| 游戏| 静乐县| 邢台市| 东丽区| 汉沽区| 湟中县| 武汉市| 镇赉县| 兴安盟| 渝中区| 万宁市| 铁力市| 出国| 叙永县| 鹤岗市| 富宁县| 洪泽县| 静宁县| 昆山市| 金堂县| 彰化县| 盐城市| 临安市| 潢川县| 金川县| 福贡县|