【问题标题】:Spring and JSR 303 Validation. How to validate only some properties?Spring 和 JSR 303 验证。如何仅验证某些属性?
【发布时间】:2012-06-18 03:05:42
【问题描述】:

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

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

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

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

任何cmets都非常感谢。

【问题讨论】:

    标签: java spring-mvc bean-validation


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-08-15
      • 1970-01-01
      • 2012-02-08
      • 2013-11-23
      • 2013-12-27
      • 2011-05-10
      • 2011-07-24
      • 1970-01-01
      • 2015-01-10
      相关资源
      最近更新 更多