是否可以将 xml 验证和 Validate 方法结合起来进行表单验证?
我的一般想法是 xml 验证将主要包含给定字段名称的长度,它是一个数字,它是一个有效的电子邮件地址吗?虽然 Validate 方法将检查给定的 fieldname 值,如果该值存在于数据库中,则会出错。
如果是这样,请举一个例子。
是否可以将 xml 验证和 Validate 方法结合起来进行表单验证?
我的一般想法是 xml 验证将主要包含给定字段名称的长度,它是一个数字,它是一个有效的电子邮件地址吗?虽然 Validate 方法将检查给定的 fieldname 值,如果该值存在于数据库中,则会出错。
如果是这样,请举一个例子。
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 字段表达式中调用带有参数的方法吗?
希望有帮助