Java SpringBoot 实体类数据自动验证
package demo.dto; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotEmpty;
import java.io.Serializable; public class ProductDto implements Serializable {
@NotEmpty(message = "姓名 不允许为空")
@Length(min = 2, max = 10, message = "姓名 长度必须在 {min} - {max} 之间")
private String userName; @NotEmpty(message = "密码 不允许为空")
private String password; @NotEmpty(message = "真实姓名 不允许为空")
private String realName; public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password == null ? null : password.trim();
} public String getRealName() {
return realName;
} public void setRealName(String realName) {
this.realName = realName == null ? null : realName.trim();
}
/**
*
@NotEmpty,@NotNull和@NotBlank的区别
1 @NotEmpty :不能为null,且Size>0 2 @NotNull:不能为null,但可以为empty,没有Size的约束 3 @NotBlank:只用于String,不能为null且trim()之后size>0
*
@NotNull
使用该注解的字段的值不能为null,否则验证无法通过。 @Null
修饰的字段在验证时必须是null,否则验证无法通过。 @Size
如下代码表示,修饰的字段长度不能超过5或者低于。 @Size(min = 1, max = 5)
private String name;
1
2
@Max
如下代码表示,该字段的最大值为19,否则无法通过验证。
@Max(value = 19)
private Integer age;
1
2
@Min
同理,被该注解修饰的字段的最小值,不能低于某个值。 @AssertFalse
该字段值为false时,验证才能通过。 @AssertTrue
该字段值为true时,验证才能通过。 @DecimalMax
验证小数的最大值。 @DecimalMax(value = "12.35")
private double money;
1
2
@DecimalMin
验证小数的最小值。 @Digits
验证数字的整数位和小数位的位数是否超过指定的长度。 @Digits(integer = 2, fraction = 2)
private double money;
1
2
@Future
验证日期是否在当前时间之后,否则无法通过校验。
@Future
private Date date;
1
2
@Past
验证日期是否在当前时间之前,否则无法通过校验。 @Pattern
用于验证字段是否与给定的正则相匹配。 @Pattern(regexp = "[abc]")
private String name;
*/ }
package demo.entity;
import java.io.Serializable;
public class Product implements Serializable {
private Integer id;
private String userName;
private String password;
private String realName;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName == null ? null : realName.trim();
}
@Override
public String toString() {
return "Product{" +
"id=" + id +
", username='" + userName + '\'' +
", password='" + password + '\'' +
", realname='" + realName + '\'' +
'}';
}
}
//添加数据
@RequestMapping("/addproduct")
public Object addproduct(@Valid ProductDto model, BindingResult result) {
int errorCount = result.getErrorCount();
MessagePack messagePack = new MessagePack();
// 验证字段是否符合规则
if (result.hasErrors()) {
throw new RuntimeException(result.getFieldError().getDefaultMessage());
} else {
Product product = new Product();
BeanUtils.copyProperties(model, product);
// 操作数据
int i = Convert.toInt(productService.addProduct(product));
// 判断操作成功与否
if (i > 0) {
messagePack.setCode(0);
messagePack.setMessage("新增商品成功");
messagePack.setObject(null);
messagePack.setStatus("OK");
} else {
messagePack.setCode(-1);
messagePack.setMessage("新增商品失败");
messagePack.setObject(null);
messagePack.setStatus("error");
}
}
return messagePack;
}
Java SpringBoot 实体类数据自动验证的更多相关文章
- Java SpringBoot 如何使用 IdentityServer4 作为验证学习笔记
这边记录下如何使用IdentityServer4 作为 Java SpringBoot 的 认证服务器和令牌颁发服务器.本人也是新手,所以理解不足的地方请多多指教.另外由于真的很久没有写中文了,用词不 ...
- SpringBoot注解把配置文件自动映射到属性和实体类实战
SpringBoot注解把配置文件自动映射到属性和实体类实战 简介:讲解使用@value注解配置文件自动映射到属性和实体类 1.配置文件加载 方式一 1.Controller上面配置 @Propert ...
- EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充
EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上 ...
- java框架之SpringBoot(5)-SpringMVC的自动配置
本篇文章内容详细可参考官方文档第 29 节. SpringMVC介绍 SpringBoot 非常适合 Web 应用程序开发.可以使用嵌入式 Tomcat,Jetty,Undertow 或 Netty ...
- 【转载】JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案
JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案 本文为转载,原文地址为:https://www.cnblogs.com/adversary/p/103 ...
- SpringBoot整合Apache Shiro权限验证框架
比较常见的权限框架有两种,一种是Spring Security,另一种是Apache Shiro,两种框架各有优劣,个人感觉Shiro更容易使用,更加灵活,也更符合RABC规则,而且是java官方更推 ...
- 使用SpringBoot进行优雅的数据验证
JSR-303 规范 在程序进行数据处理之前,对数据进行准确性校验是我们必须要考虑的事情.尽早发现数据错误,不仅可以防止错误向核心业务逻辑蔓延,而且这种错误非常明显,容易发现解决. JSR303 规范 ...
- java~springboot~目录索引
回到占占推荐博客索引 最近写了不过关于java,spring,微服务的相关文章,今天把它整理一下,方便大家学习与参考. java~springboot~目录索引 Java~关于开发工具和包包 Java ...
- java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况
java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况 邮件短信微服务 spring boot 微服务 接收json格式参数 验证参数合 ...
随机推荐
- Xcodeproj相关以及删除 多层文件夹、库、资源逻辑
一.介绍Xcodeproj是CocoaPods用ruby开发的一个插件库,可以用来新建.修改Xcode工程. 二.wiki和资源Xcodeproj wiki :https://www.rubydo ...
- Part_three:Redis持久化存储
redis持久化存储 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失. 1.RD ...
- (五)react-native开发系列之Android原生交互
react-native可以做web与原生的交互,这是使用react-native开发项目的主要目的之一,也是主要优势,用rn而不用原生交互则毫无价值,这篇文章用来记录在项目中rn的原生交互使用过程. ...
- [LeetCode] 64. 最小路径和 ☆☆☆(动态规划)
描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入:[ [1,3,1], [1,5,1 ...
- vue-element-admin 前端框架 使用感触
感触: 不搜不知道,一搜吓一跳!经常百度很重要. 美国有gitgub:https://github.com/search?q=vue-element-admin 中国有码云:https://gitee ...
- navicat for mysql 链接时报错:1251-Client does not support authentication protocol requested by server
客户端使用navicat for mysql.本地安装了mysql 8.0.但是在链接的时候提示: 主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的. 打开mysql命令行输入如下命令 ...
- Java重试机制
重试作用: 对于重试是有场景限制的,不是什么场景都适合重试,比如参数校验不合法.写操作等(要考虑写是否幂等)都不适合重试. 远程调用超时.网络突然中断可以重试.在微服务治理框架中,通常都有自己的重试与 ...
- CPN tools 帮助文档资料和实例
1.替代变迁 包含有替代变迁的页面叫做父页,当CPN网使用替代变迁的时候,替代变迁所表达的逻辑必须在某一个位置得到实现,实现替代变迁逻辑页面叫做子页或者子网. 将替代变迁相邻的库所叫做槽库所,也即是在 ...
- django配置*app*登录案例*orm简用
1.静态文件的配置和使用 1.静态文件的配置和使用 没有css样式: 添加样式 结果: <html lang="en"> <head> <meta c ...
- WEB监控手段
WEB监控手段: 1.端口 本地: ss . netstat .lsof ss -ntlp|grep 80|wc -l (大于等于1) netsta ...