我想知道我在这里做错了什么:
<validators>
<field name="cli.idCli" >
<field-validator type="requiredString" short-circuit="true">
<message>Required field (*)</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">8</param>
<param name="maxLength">8</param>
<message>ID must has 8 characters</message>
</field-validator>
</field>
</validators>
因为,实际上我收到了这个错误:
ERROR com.opensymphony.xwork2.validator.AnnotationActionValidatorManager 加载文件时捕获异常 ... / action / ServiceAction-findPets-validation.xml验证无效 type:requiredString - field-validator
另外,我想知道如果进行ajax调用(并发送JSON数据)我可以验证这些数据的存在吗?我的意思是通过.xml验证器。此外,如果我实现Validateable
接口,每次请求到达此操作时,此方法将被触发?有没有办法指定哪种动作方法呢?
答案 0 :(得分:0)
名称区分大小写,您应该使用
<field-validator type="requiredstring" short-circuit="true">
数据可以在填充到操作后进行验证。您可以使用*-validation.xml
以声明式方式执行此操作,也可以通过validate()
使用以编程方式执行此操作。
您可以配置validation
拦截器以在这两种方式之间进行选择,因为默认情况下validate()
在声明性验证完成后运行,即使它们是短路的。
考虑使用alwaysInvokeValidate
参数。如果您将别名验证文件用作ActionClass-alias-validation.xml
,则仅对此操作别名运行验证。映射操作方法时,可以使用此别名。
答案 1 :(得分:0)
如果您想跳过任何操作方法的验证,请使用@SkipValidation
注释。
@SkipValidation
public String yourMethod {
...
return "input";
}