首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jooby-hbv验证

如何使用jooby-hbv验证
EN

Stack Overflow用户
提问于 2019-03-05 20:26:37
回答 1查看 103关注 0票数 1

我想使用jooby验证,我在https://jooby.org/doc/hbv/中查找过,但我不能使用它

EN

回答 1

Stack Overflow用户

发布于 2019-05-05 05:52:58

  1. 你需要在App类中初始化Hibernate Validator

代码语言:javascript
复制
    use(new Hbv(ClassUtils.getClasses("com.package.of.classes.validate")));

  1. 使用验证器注释您的类。注意:这些类必须在上面的包中。示例:

代码语言:javascript
复制
    public class SampleRequest {
        @NotNull
        private Long id;
        @NotBlank
        String name;
        private @NotBlank
        String description;
        private @Min(1)
        double amount;
    }

然后,您可以在

  1. 类中使用通用错误处理程序。

代码语言:javascript
复制
     err((req, rsp, err) -> {
                Throwable cause = err.getCause();
                if (cause instanceof ConstraintViolationException) {
                    Set<ConstraintViolation<?>> constraints = ((ConstraintViolationException) cause)
                            .getConstraintViolations();

                    // handle errors, return error response 
                } else {
                   // ......
                }
            });

  1. 或您可以在您的服务中手动验证:

代码语言:javascript
复制
    private void validateRequest(SampleRequest sampleRequest) {
            Validator validator = factory.getValidator();
            Set<ConstraintViolation<SampleRequest>> constraintViolations =
                    validator.validate(sampleRequest);
            if (!constraintViolations.isEmpty()) {
                StringBuilder builder = new StringBuilder();
                for (ConstraintViolation<SampleRequest> error : constraintViolations) {
                    logger.error(error.getPropertyPath() + "::" + error.getMessage());
                    builder.append(error.getPropertyPath() + "::" + error.getMessage());
                }
                throw new IllegalArgumentException(builder.toString());
            }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55002801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档