我们知道校验器本质是一个Java文件,检验规则是由校验器操作的。strut2规定所有的校验器必须被注册到校验工厂(ValidatorFactory),通过registerValidator方法实现,该方法在ValidatorFactory.java中申明。检验器只需要实现了com.opensymphony.xwork2.validator.Validator接口中的类即可。关于校验的具体方法实现在继承validate()中实现。然后还需要注册校验器,即为相应的校验器取名。利用validators.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator Config 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
<!-- 自定义校验器的注册 -->
<validators>
<validator name="strandnum"
class="example.StrNumFieldValidator"/>
<validator name="required"
class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
<validator name="requiredstring"
class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
</validators>
为相应的Action字段添加校验器时,如Action的名字为StrNumAction则相应的xml文件为StrNumAction-validation.xml.工程的目录结构为