设为首页 加入收藏

TOP

Bean Validation完结篇:你必须关注的边边角角(约束级联、自定义约束、自定义校验器、国际化失败消息...)(四)
2019-09-01 23:28:57 】 浏览:24
Tags:Bean Validation 完结 必须 关注 边角 约束 定义 校验 国际化 失败 消息 ...
eConstraintValidatorContext.class); hibernateContext.addMessageParameter("zhGenderValue", genderValue == 0 ? "男" : "女"); // 友好展示 //hibernateContext.buildConstraintViolationWithTemplate("{zhGenderValue}").addConstraintViolation(); if (value == null) { return false; // null is not valid } return value == genderValue; } }

运行单测:

@Getter
@Setter
@ToString
public class Person {
    @Gender(gender = 0)
    private Integer personGender;
}

    public static void main(String[] args) {
        Person person = new Person();
        person.setPersonGender(1);

        Validator validator = Validation.byProvider(Hibernateva lidator.class).configure().failFast(false)
                .buildValidatorFactory().getValidator();
        Set<ConstraintViolation<Person>> result = validator.validate(person);

        // 输出错误消息
        result.stream().map(v -> v.getPropertyPath() + " " + v.getMessage() + ": " + v.getInvalidValue())
                .forEach(System.out::println);
    }

打印如下:

personGender [自定义消息]此处只能允许性别为[男]的: 1

完美(效果达到)

总结

如果说前面文章是用机,那这篇可以称作是玩机了Bean Validationjava官方定义的bean验证标准,现在最新的版本为2.x,hibernate validator作为其标准实现,对其进行了扩展,增加了多种约束,如果仍然不能满足业务需求,我们还可以自定义约束。
数据校验Bean Validation这一大块的内容到此就告一段落了,希望讲解的所有内容能给你实际工作中带来帮助,祝好~

知识交流

若文章格式混乱,可点击原文链接-原文链接-原文链接-原文链接-原文链接

==The last:如果觉得本文对你有帮助,不妨点个赞呗。当然分享到你的朋友圈让更多小伙伴看到也是被作者本人许可的~==

若对技术内容感兴趣可以加入wx群交流:Java高工、架构师3群
若群二维码失效,请加wx号:fsx641385712(或者扫描下方wx二维码)。并且备注:"java入群" 字样,会手动邀请入群

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇maven 依赖中scope标签的配置范围.. 下一篇理解ScheduledExecutorService中s..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目