zoukankan      html  css  js  c++  java
  • Validator验证框架使用教程

    Terry原创,转载请说明作者及出处。
    使用平台:Eclipse3.2+MyEclipse5.01GA

    首先,Validator验证框架最好要在Struts1.2下使用,当然在Struts1.1下也是可行的,只是在Struts1.2下能支持得更好。

    在Struts-Config.xml配置文件里添加插件,或是把下面的文本内容复制到Struts-Config.xml中:
        <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
          <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
        </plug-in>

    在MyEclipse下建立validation.xml的步骤如下:
    在项目的根目录处点击鼠标右键,选择新建“XML(Basic Templates)”,在弹出的窗口中选择“Create XML file from a DTD file”下一步,将文件目录设置到WEB-INF下,文件名取为“validation.xml”下一步;在这里点击“Select XML Catalog entry”选项,并选择KEY名为“-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN”的选项,下一步;此处已经不需要再设置什么,直接点击“Finish”完成validation.xml的建立,通过这样的建立文件,在编辑过程中输入"<"符号后,编辑器就会自动查找与当前结构匹配的Validator标签。


    下面介绍一下validation.xml配置文件的标签:

    <form-validation></form-validation>是总框架
    <formset></formset>是对Form里的数据进行配置
    <form name="ActionForm对应的名称"></form>对一个ActionForm里的数据进行验证配置
    <field property="ActionForm里的属性名" depends="验证规则,可以是Validation-rules里定义好的也可以是自定义的验证规则">这里配置一个属性的验证内容
    <arg0 name="对应的验证规则名称" key="可以直接填入数值,也可填入变量表达式:${var:变量名}" resource="true/false"(代表是否从资源文件中读取信息,否则Key的值以参数的形式返回)>
    <var></var>定义一个变量的标签体,可以在里面具体设置变量的名称以及数值
    <var-name>对应Key里定义的变量名称</var-name>
    <var-value>值</var-value>
    <msg name="对应的验证规则名称" key="资源文件中定义的变量名称">这里定义了信息变量后,会默认定义的信息变量。
    在验证规则中大部分可以使用已经预定义好的规则,它们在validator-rules.xml里,当然我们自己也可以定义规则。


    实例如下:
    <form-validation>
        <formset>
          <form name="employeeActionForm">
          <field property="vname" depends="required,maxlength">
            <arg0 key="employee.name"/>
            <arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
            <var>
              <var-name>maxlength</var-name>
              <var-value>10</var-value>
            </var>
          </field>
          <field property="vsex" depends="required,maxlength">
            <arg0 key="employee.sex"/>
            <arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
            <var>
              <var-name>maxlength</var-name>
              <var-value>5</var-value>
            </var>
          </field>
          <field property="vage" depends="required,integer,intRange">
            <arg0 key="employee.age"/>
            <arg1 name="intRange" key="${var:min}" resource="false"/>
            <arg2 name="intRange" key="${var:max}" resource="false"/>
            <var>
              <var-name>min</var-name>
              <var-value>1</var-value>
            </var>
            <var>
              <var-name>max</var-name>
              <var-value>100</var-value>
            </var>
          </field>
          <field property="vmoney" depends="integer">
            <arg0 key="employee.money"/>
          </field>
          </form>
        </formset>
    </form-validation>


    要想在ActionForm里应用上Validator框架,就必须继承ValidatorForm类;
    在MyEclipse下新建ActionForm时可以将其SuperClass设置为“org.apache.struts.validator.ValidatorForm”
    如果是已经建好的ActionForm要改为使用Validator验证需如下操作:
    导入org.apache.struts.validator.ValidatorForm包,将类ActionForm扩展类从原先的ActionForm改为ValidatorForm
    而原先的public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)和
    public ActionErrors validate(ActionMapping mapping, ServletRequest request)
    以及Reset方法去除即可。


    应用程序全局资源文件:ApplicationResources.properties
    可以在文件里添加错误提示信息,格式为:
    变量名:提示文本(注:若要使用中文信息则要在转换之前将中文的文本填写完,转换后文件名后需要加上_zh_CN才会被系统识别为简体中文)
    内容如下:
    employee.name=员工姓名
    employee.sex=员工性别
    employee.age=员工年龄
    employee.money=期望薪金
    errors.required={0}不能为空,请填写!
    errors.integer={0}必需为一个整数值
    errors.range={0}必需为1~100之间的一个数字
    errors.maxlength={0}的最大数不能越过{1}!
    注:若需要换行可以在文本后面加上"<br>";

    以上的例子只是说明了资源文件的使用方法,但是如果就想这样来显示中文提示信息是不可行的,


    转换的命令是:
    native2ascii -encoding gb2312 ApplicationResources.properties ApplicationResources_zh_CN.properties

    native2ascii命令是Java JDK目录下BIN目录里的一个可执行文件,若发现不能执行,请修改系统环境变量,即在Path变量里加入"X:\...\jdk1.5.1\bin;",修改完需要重新启动系统所配置的环境变量才可生效。
    可将命令制作成批命令,注意:转换格式后,在工程里需要手动刷新文件,否则项目不会识别你所做的改动


    到这里Validator验证框架的所有配置已经完成此时你只要在页面相应位置放入<html:errors/>标签即可显示,这样是将所有的错误在同一个地方显示,若想实在在每个输入控件后面显示错误提示,就必须手动设置标签的属性,如:<html:errors property="XXX">
  • 相关阅读:
    idea设置全局ignore
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistributable. Please ins
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistr
    kafka 删除 topic
    java编译中出现了Exception in thread “main" java.lang.UnsupportedClassVersionError
    Centos中使用yum安装java时,没有jps的问题的解决
    Spring 整合Junit
    Spring纯注解配置
    Spring 基于注解的 IOC 配置
    打印java系统的信息
  • 原文地址:https://www.cnblogs.com/jamin/p/1212017.html
Copyright © 2011-2022 走看看