在Struts2中结合Validate方法和xml验证

时间:2012-12-18 06:55:56

标签: java forms struts2 tags validation

是否可以将xml验证和Validate方法结合使用以进行表单验证?

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

若是,请举例说明。

1 个答案:

答案 0 :(得分:1)

AFAIK,没有。根据评论,是的。

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

顺便说一句,请注意:使用fieldexpression validator,您可以使用参数调用函数,例如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之间的间隔内。 startDate和endDate是Action中的实例变量,通过getter读取......

也请阅读此链接:Can we call methods with parameters in Struts2 fieldexpression?

希望有所帮助