这是Webwork2.0中类FieldValidatorSupport中对字段进行验证validate的方法代码:




























从代码中可以看出,当被验证字段为null或其length<=0时,就不对其进行长度验证了。
这里是为什么呢??是不是其字段为null或其length<=0时验证留在别的地方验证了呢?答案是肯定的,请看类RequiredStringValidator和类RequiredFieldValidator中的validate方法
RequiredStringValidator中的validate方法:

































在代码中大家可以看到这三个方法各司其职而且互不影响,举个例子吧:
如何你有一个action类中如此写:





































这时候当Hellow这个Action被引用的时候,WebWork的验证机制就会根据你的配置文件对name字段进行验证,在本例中name初始为null,所以这时候只有required和requiredstring对其进行完整的验证,也就是说这时候你会得到的验证信息为:Name is required! Please enter the name!
而如果你就Hello类中name字段设一个初始值(name="a"),那么这时候required和requiredstring就不会对其进行完整的验证了,相反stringlength会对其进行完整的验证,这时候你得到的验证信息为:The length of name is between 5 and 8.
这就是这个三个验证方式相互协作的方式!