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