Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Struts2中验证方法和xml验证的结合_Java_Forms_Struts2_Tags_Validation - Fatal编程技术网

Java Struts2中验证方法和xml验证的结合

Java Struts2中验证方法和xml验证的结合,java,forms,struts2,tags,validation,Java,Forms,Struts2,Tags,Validation,是否可以将xml验证和Validate方法结合起来进行表单验证 我的一般想法是,xml验证将主要包含给定字段名的长度,它是一个数字,它是一个有效的电子邮件地址吗?。当Validate方法检查给定的fieldname值时,如果该值存在于数据库中,则会出现错误 如果是,请举例说明。AFAIK,否。根据评论,是的 我一直认为验证的目的是验证输入的正确性,而不是“语义”:如果输入错误,返回;若输入正常,检查数据库中是否有重复项,检查用户角色的权限,调用服务,查看文件系统等 顺便说一句,请注意:使用fie

是否可以将xml验证和Validate方法结合起来进行表单验证

我的一般想法是,xml验证将主要包含给定字段名的长度,它是一个数字,它是一个有效的电子邮件地址吗?。当Validate方法检查给定的fieldname值时,如果该值存在于数据库中,则会出现错误

如果是,请举例说明。

AFAIK,否。根据评论,是的

我一直认为验证的目的是验证输入的正确性,而不是“语义”:如果输入错误,返回;若输入正常,检查数据库中是否有重复项,检查用户角色的权限,调用服务,查看文件系统等

顺便说一句,请注意:使用
fieldexpressionvalidator
,您可以使用参数调用函数,就像在JSP中一样(它是OGNL)

这可能是一种不好的做法(参见上文),但您可以这样做:

<validators>
    <field name="username">
        <field-validator type="fieldexpression">
            <param name="expression">
                <![CDATA[
                    isUserAlreadyInDatabase(username)
                ]]>
            </param>
            <message>function call message here</message>
        </field-validator>
    </field>
</validators>

函数调用消息在这里
我之所以分享这一点,是因为它值得了解,而且在某些情况下确实很有用(肯定不是你的问题所指出的那个)

例如,我用它来检查页面中的日期是否在当前主题的开始日期和结束日期之间。startDate和endDate是来自操作的实例变量,通过getter读取

也请阅读此链接:


希望有帮助

你试过了吗?什么不起作用?为什么不起作用
AnnotationValidationInterceptor
将调用实际的验证方法。两者都可以毫无问题地使用。