📄 validation.xml
字号:
<?xml version="1.0" encoding="GBK" ?>
<!-- 这是XML语法的规则,指明本XML的数据规则 -->
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<global>
<constant>
<constant-name>phone</constant-name>
<constant-value>^\d{8}\d*$</constant-value>
<!--表示必须为8位的数字-->
</constant>
<constant>
<constant-name>zipcode</constant-name>
<constant-value>^\d{6}\d*$</constant-value>
<!--表示必须为6位的数字-->
</constant>
</global>
<formset>
<form name="logonForm">
<field property="phone" depends="required,mask,minlength">
<arg0 key="logonForm.phone"/>
<arg1 name="minlength" key="${var:aaa}" resource="false" />
<var>
<var-name>mask</var-name>
<var-value>${phone}</var-value>
</var>
<var>
<var-name>aaa</var-name>
<var-value>7</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
<!--###################################################################################################################
说明:
1.<form-validation>元素
这是根元素,它包含两个子元素,<global>和<formset>;<global>可以出现0此或多次,<formset>可以出现一次或多次
2.<global>元素
在<global>元素中可以出现<constant>子元素,用来定义常量表达式.而在文件的其他部分,可以引用这些常量表达式
在上面的文件中定义了两个常量phone和zipcode,在<formset>中可以通过${phone}形式来引用电话常量
3.<formset>元素
<formset>元素中可以出现两个子元素:<constant>和<form>.<constant>可以出现0次或多次;<form>可以出现一次或
多次.
注意:在<global>出现<constant>子元素表示全局常量 ,在<formset>中出现<constant>表示局部常量
4.<form>元素
<formset>的<form>子元素用于位某个表单定制校验规则.它的name属性指定了表单的名称.在<form>元素中可以出现
一个或多个<field>子元素
5.<field>元素
<field>元素用于配置表单中某个字段的校验规则;property属性指定要校验的字段,depends属性指定字段的校验规则
多个规则用","分隔.
6.<msg>元素
在<field>元素中可以不出现或出现一次<msg>子元素,该子元素指定校验规则对应的消息文本,该消息文本将替代在
Validator-rules.xml文件中位校验规则配置的默认的消息文本
例如:
<field property="phone" depends="required,mask,minlength">
<msg name="mask" key="phone.invalidformat" >
</field>
以上的代码表明,当mask校验失败时,错误消息文本来自于Resource Bundle,消息的key位phone.invalidformaf
<msg>元素有三个属性:
name属性:指定校验规则的名称
key属性:当rsource属性位true时,key属性指定消息的key,该消息的key应该在Resource Bundle文件中存在.
如果rsource属性位false,则key属性直接指定消息文本
resource属性:为true时,表示使用来自Resource Bundle的消息,如果为false,表示直接在key属性中设置文
本消息 .默认为true;
7.<arg>元素
<field>元素可以有四个附加的子元素<arg0>,<arg1>,<arg2>,<arg3>,可以不出现或出现一次.用于替换复合消息中的参数
<arg>元素有三个属性,name,key,resource,类似于<msg>的属性
在上面的文件中,没有出现<msg>元素.如果某个校验规则失败,将使用在Validator-rules.xml中默认的消息文本.例如当
minlength规则校验失败的时候,将使用在Validator-rules.xml中设置的消息,key为"error.minlength"
"error.minlength"对应的消息为"{0} can not be greater than {1} characters."
<arg0>没有设置name属性,使用于所有的校验规则,它将取代以上复合消息中的第一个参数{0},<arg0>的key为"logonForm.phone"
在Resource Bundle中与之匹配的是:logonForm.phone = 电话
<arg1>的name属性指定为minlength,表示仅是适用于minlength校验规则,它将取代以上复合消息中的第二个{1}.<arg1>的
resource="false",表示此时key的属性不来自于Resource Bundle,而是直接来自指定文本,key的属性由变量${minlength}来决定
此时的值为7
最后,以上复合消息的为:电话不能少于7个字符
8.<var>元素
<field>元素可以出现0个或多个<var>子元素.<var>元素用来向校验规则传递参数,在上面的例子中
----------------------------------------------------------------
<var>
<var-name>mask</var-name>
<var-value>${phone}</var-value>
</var>
----------------------------------------------------------------
phone的常量值为^\d{8}\d*$,被传递给mask校验规则,表示8位的数字
<arg>元素也可以范围<var>元素,例如:
----------------------------------------------------------------
<arg1 name="minlength" key="${var:minlength}" resource="false" />
...
<var>
<var-name>minlength</var-name>
<var-value>7</var-value>
</var>
----------------------------------------------------------------
###################################################################################################################-->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -