java - 如何在 Struts 2 中正确验证字段

标签 java validation struts2

我想知道我在这里做错了什么:

<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 Caught exception while loading file .../action/ServiceAction-findPets-validation.xml Invalid validation type: requiredString - field-validator

另外,我想知道进行 ajax 调用(并发送 JSON 数据)是否可以验证这些数据的存在?我的意思是通过 .xml validator 。此外,如果我实现 Validateable 接口(interface),每次请求到达此操作时都会触发此方法吗?有没有办法指定它是哪个操作方法?

最佳答案

名称区分大小写,您应该使用

<field-validator type="requiredstring" short-circuit="true">

数据填充到操作后可以进行验证。您可以使用 *-validation.xml 以声明式方式执行此操作,也可以通过 validate() 以编程方式执行此操作。

您可以配置validation拦截器在这两种方式之间进行选择,因为默认情况下validate()会在声明性验证完成后运行,即使它们是短路的。

考虑使用alwaysInvokeValidate参数。如果您使用别名验证文件作为ActionClass-alias-validation.xml,则仅针对该操作别名运行验证。您可以在映射操作方法时使用此别名。

关于java - 如何在 Struts 2 中正确验证字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25027081/

相关文章:

struts2 - 泰米尔语言选项在 struts 2.3.29 中不起作用

java - 异步使用 Struts 2

java - 如果服务器停止,如何删除 session

excel - 尝试使用 VBA 设置依赖列表验证,得到 "Application-defined or object-defined error"

Java - 如何查看一个字符是否与多个字符匹配?

java - 文本超出 JTextArea

java - 验证方法被调用并中断执行/忽略以后的失败

javascript - jQuery:检查包含特定值的表行是否已经存在

javascript - Jquery 动态表单验证不起作用

java - JDBC动态查询,如果不是-1则只将值写入字符串