我们假设我们有一个注册表单。当表单的某些输入被更改时,我想通过使用对服务器的ajax调用来动态验证其值。是否有机会通过使用JSR 303验证来验证bean的某些特定属性?
注册表单处理程序验证收到的bean就好了,但我想在提交整个bean之前找出检查属性的方法。
直接的方法是创建一个服务器端方法来接收属性名称和值,并根据名称检查值,但我希望有一种方法可以使用已经定义的bean约束。
例如,用户输入了电子邮件地址并向前移动到下一个属性。客户端进行呼叫,服务器方法检查提供的电子邮件是否已存在。如果是这样,它会返回一个错误,我会在客户端显示它。我相信它可能会使注册过程更加灵活和用户友好
任何评论都非常感谢。
答案 0 :(得分:1)
jsr-303 Validator确实有一个方法来验证一个属性:
<T> java.util.Set<ConstraintViolation<T>> validateProperty(T object,
java.lang.String propertyName,
java.lang.Class<?>... groups)
你只需要注入验证器,以便你可以直接使用它,而不是依靠Spring通过将@Valid放在方法参数上来自动调用它。