0

假设我们有一个注册表单。当表单的某些输入发生更改时,我想通过使用对服务器的 ajax 调用来动态验证其值。是否有机会使用 JSR 303 验证仅验证 bean 的某些特定属性?

注册表单处理程序验证接收到的 bean 就好了,但我想找出在提交整个 bean 之前检查属性的方法。

直接的方法是创建一个服务器端方法来接收属性名称和值并根据名称检查值,但我希望有一种方法可以使用已经为 bean 定义的约束。

例如,用户输入电子邮件地址并前进到下一个属性。客户端进行调用,服务器方法检查提供的电子邮件是否已经存在。如果是这样,它会返回一个错误,我会在客户端显示它。我相信它可以使注册过程更加灵活和用户友好

任何评论都非常感谢。

4

1 回答 1

1

jsr-303验证器确实有一个方法可以验证一个属性:

<T> java.util.Set<ConstraintViolation<T>> validateProperty(T object,
                                                           java.lang.String propertyName,
                                                           java.lang.Class<?>... groups)

您只需要注入验证器,以便您可以直接使用它,而不是依赖 Spring 通过将 @Valid 放在方法参数上来自动调用它。

于 2012-06-15T03:05:03.127 回答