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