java中的Bean Validation怎么使用
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"java中的Bean Validation怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能
千家信息网最后更新 2026年11月03日java中的Bean Validation怎么使用
本篇内容介绍了"java中的Bean Validation怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
概念:java中的Bean Validation是一个数据验证的规范。
说明:Hibernate Validator是Bean Validation的一个具体实现。
举例:在springMVC中使用Hibernate Validator
1)maven依赖:javax.validation validation-api 1.1.0.Final 2)JavaBean: import javax.validation.constraints.NotNull; import org.hibernate.validator.constraints.NotBlank; /** * 在需要进行校验的属性上添加相应的注解: * * 1)Bean Validation 提供的 constraint: * [@Null](https://my.oschina.net/u/561366) 被注释的元素必须为 null * [@NotNull](https://my.oschina.net/notnull) 被注释的元素必须不为 null * @AssertTrue 被注释的元素必须为 true * [@AssertFalse](https://my.oschina.net/u/2430840) 被注释的元素必须为 false * @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 * @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 * @DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 * @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 * @Size(max=, min=) 被注释的元素的大小必须在指定的范围内 * @Digits (integer, fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内 * @Past 被注释的元素必须是一个过去的日期 * @Future 被注释的元素必须是一个将来的日期 * @Pattern(regex=,flag=) 被注释的元素必须符合指定的正则表达式 * * 2)Hibernate Validator 特有的 constraint: * @NotBlank(message =) 验证字符串非null,且长度必须大于0 * @NotEmpty 被注释的字符串或集合的必须非空 * @Email 被注释的元素必须符合email的格式 * @Length(min=,max=) 被注释的字符串的大小必须在指定的范围内 * @Range(min=,max=,message=) 被注释的元素必须在合适的范围内 * */ public class User { @NotBlank(message = "name is null!") private String name; @NotNull(message = "age is null!") private Integer age; private String email; private String address; // getter and setter .. } 3)控制器: import javax.validation.Valid; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMethod; @RestController @RequestMapping("/sys") public class UserController { /** * 1.给需要校验的参数添加 @Valid注解 * 2.给方法添加一个类型为 BindingResult的参数,用来封装 校验的结果 */ @RequestMapping(value = "/user/add", method = RequestMethod.POST) public String addUser(@Valid @RequestBody User req, BindingResult bindingResult) { if (bindingResult.hasErrors()) { List org.hibernate hibernate-validator 5.1.2.Final allErrors = bindingResult.getAllErrors(); List msgs = new ArrayList (); for (ObjectError objectError : allErrors) { String msg = objectError.getDefaultMessage(); msgs.add(msg); } String paramErrorMsg = StringUtils.join(msgs, " & "); return paramErrorMsg; } else { System.out.println("do add user."); return "success!"; } } }4)接口测试: 地址:http://localhost:8081/jxn-web/api/sys/user/add 请求类型:Content-Type: application/json 参数: {"name":"","age":null} ==> 响应内容:age is null! & name is null! {"name":"","age":""} ==> 响应内容:age is null! & name is null! {"name":"jack","age":"17"} ==> 响应内容:success!
常见错误:
报错:javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.Integer.分析:是由于@NotBlank修饰了Integer、Long等引用类型的属性eg: @NotBlank private Integer age; 修正:应该使用@NotNull来修饰引用类型的属性。 @NotNull private Integer age;
"java中的Bean Validation怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
注释
元素
内容
数字
类型
范围
参数
字符
字符串
属性
最大
最小
大小
日期
更多
最大值
注解
知识
验证
合适
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技卖菜
万易互联网科技
互联网与新科技
成都互联网科技公司
大白互联网科技
互联网科技汛
科技与互联网的利与弊
互联网科技热点资讯
互联网系的金融科技公司
全球顶尖互联网科技公司
知域互联网科技有限公司大骗子
互联网科技产业特征
健康食品互联网创新科技园项目
互联网科技如何创业
伍佰万互联网科技怎么赚钱
雨阳互联网卡科技有限公司
四川互联网展示科技馆设计
江苏互联网智能科技产品出厂价
众联互联网络科技
互联网科技创新创业项目
互联网黑科技
中智农互联网科技
广州百单互联网科技有限公司
互联网和科技技术
互联网未来科技
宁波青枫互联网科技有限公司
荆州市昕露互联网络科技有限公司
崇明区互联网教育科技售后服务
本届互联网博览会上的黑科技
乌鲁木齐新华智原互联网科技学校