0

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

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

如果是这样,请举一个例子。

4

1 回答 1

1

AFAIK,不。根据评论,是的。

我一直认为 Validation 旨在验证输入的正确性,而不是“语义”:如果输入错误,则返回;如果输入正常,检查 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 读取...

也请阅读此链接:我们可以在 Struts2 字段表达式中调用带有参数的方法吗?

希望有帮助

于 2012-12-18T11:11:14.220 回答