Struts的静态数据验证方法

来源:互联网 发布:psv 重建数据库 编辑:程序博客网 时间:2024/05/19 04:26
 
Struts的静态数据验证方法
胡立新
利用Struts的静态数据验证方法可以对用户在表单上输入的数据进行验证,包括数据类型是否正确、是否可空等。方法如下:
    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/下还应有文件ApplicationResources_zh_CN.properties, 两文件最后打包到WEB-INF/classes下。
    2、利用开发工具在WEB-INF/下导入validator-rules.xml及validation.xml文件。这是有关验证规则及验证内容的配置文件。
    3、为表单属性加入中文说明,如有个formBean,名为form1,有三个属性,name、height、born,分别是姓名、身高、出身日期
       在ApplicationResources.properties文件中加入属性的解释说明:
           errors.integer={0} 必须为整型值,请注意编辑框内不能有空白字符串. 
           errors.date={0} 日期格式错误,应为 2004-03-23 或 2004-03-23 00:00:00.0 (00:00:00.0 为时:分:秒.毫秒)
           # form1
           form1.name.displayname=姓名
           form1.height.displayname=身高
           form1.born.displayname=出身日期
       第一、二行不是必须的,但有意义。
       打包前执行下列批处理 native2ascii ApplicationResources.properties ApplicationResources_zh_CN.properties,目的是由文件ApplicationResources.properties
       产生新文件ApplicationResources_zh_CN.properties,以便能正确显示汉字,这个新文件也在src/下。
    4、为了验证用户在填写表单时输入的数据,在validation.xml文件的<formset></formset>之间加入如下内容
          <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页面上,在</body>前加入strus标签:
          <html:javascript formName="form1" dynamicJavascript="true" staticJavascript="true"/>
    经过以上准备,不管是用struts的<html:form></html:form>标签还是用newxy的<nhtml:form></nhtml:form>标签,在客户端用户提交数据前都可以进行验证。
    但如果用struts的<html:form></html:form>标签,应加入onsubmit事件,如:
          <html:form action="/myAction.do?method=update" onsubmit="return validateForm1(this);">
            ....
            <html:submit value=" 提交 " />
          </html:form>
          
 
原创粉丝点击