致我自己的粗心浪费的2个小时。
做了一个struts2验器案例 可是发现验证器并不起作用,以至于进入Action报错。
仔细查找了2个小时终于发现
验证器类型 手滑 把email写成eamil了 导致了所有的验证器都不可用。
希望后来的小伙伴不要和我犯同样的错误。
当然还有其它可能导致的错误,
jsp字段名要和验证器里面的name,action里面的字段一致
验证器的xml命名方式:
- 针对动作类中所有动作进行验证:ActionClassName-validation.xml
- 针对动作类中某个动作进行验证:ActionClassName-ActionName-validation.xml 需要注意的是 这里的ActionName是struts.xml中配置的action标签中的name值,不是action类中的方法名
在这里列下所有的验证器类型(ps:其实就在你导入的xwork核心jar包里面,/com/opensymphony/xwork2/validator/validators/default.xml):
<validators>
<validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
<validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
<validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
<validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
<validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
<validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
<validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
<validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>
<validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
<validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
<validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
<validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
<validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>
<validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
<validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
<validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
</validators>