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 实体类数据自动验证的更多相关文章

  1. Java SpringBoot 如何使用 IdentityServer4 作为验证学习笔记

    这边记录下如何使用IdentityServer4 作为 Java SpringBoot 的 认证服务器和令牌颁发服务器.本人也是新手,所以理解不足的地方请多多指教.另外由于真的很久没有写中文了,用词不 ...

  2. SpringBoot注解把配置文件自动映射到属性和实体类实战

    SpringBoot注解把配置文件自动映射到属性和实体类实战 简介:讲解使用@value注解配置文件自动映射到属性和实体类 1.配置文件加载 方式一 1.Controller上面配置 @Propert ...

  3. EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充

    EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上 ...

  4. java框架之SpringBoot(5)-SpringMVC的自动配置

    本篇文章内容详细可参考官方文档第 29 节. SpringMVC介绍 SpringBoot 非常适合 Web 应用程序开发.可以使用嵌入式 Tomcat,Jetty,Undertow 或 Netty ...

  5. 【转载】JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案

    JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案 本文为转载,原文地址为:https://www.cnblogs.com/adversary/p/103 ...

  6. SpringBoot整合Apache Shiro权限验证框架

    比较常见的权限框架有两种,一种是Spring Security,另一种是Apache Shiro,两种框架各有优劣,个人感觉Shiro更容易使用,更加灵活,也更符合RABC规则,而且是java官方更推 ...

  7. 使用SpringBoot进行优雅的数据验证

    JSR-303 规范 在程序进行数据处理之前,对数据进行准确性校验是我们必须要考虑的事情.尽早发现数据错误,不仅可以防止错误向核心业务逻辑蔓延,而且这种错误非常明显,容易发现解决. JSR303 规范 ...

  8. java~springboot~目录索引

    回到占占推荐博客索引 最近写了不过关于java,spring,微服务的相关文章,今天把它整理一下,方便大家学习与参考. java~springboot~目录索引 Java~关于开发工具和包包 Java ...

  9. java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况

    java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况 邮件短信微服务 spring boot 微服务 接收json格式参数 验证参数合 ...

随机推荐

  1. webRTC client 源码环境工具配置

    以下操作真实实验过,安卓,苹果均可成功 环境 Mac 10.13.6 Xcode 11 翻墙代理:Lantern 专业版 Python 2.7.10 设置 git 代理 #设置git代理 $ git ...

  2. 智表ZCELL产品发布企业版

    为了满足部分企业用户无限分发的需要,智表插件在专业版基础上推出企业版本(http://zcell.net/productinfo.html),功能与专业版本保持一致.授权方式采用提供企业客户授权工具, ...

  3. 快速为不同 Git 平台配置用户

    在 ~ 目录下创建 config 文件可以为项目配置默认的用户信息,但如果希望经常切换,那么最好就是通过命令为项目单独设置用户. 我使用的 shell 是 zsh, 所以我在 ~/.zshrc 文件中 ...

  4. Kubernetes 1.15部署日记-使用kubeadm--<5-6>

    5.配置pod网络 5.1下载calico 网络配置文件 [root@k8s-1 libj]# curl -O https://docs.projectcalico.org/v3.6/getting- ...

  5. [daily][qemu][kvm] 使用qemu/kvm模拟numa节点

    qemu的配置参数又复杂又难用,man手册写的也是非常对付,很多信息都没有. 而且,竟然遗弃掉旧的配置,换用新的配置.不过这也是好事,说明它在发展,我是欢迎的. 唯一的问题是,要经常跟着它一起更新配置 ...

  6. nginx_status

    server { listen ; server_name blog.oldboy.com; root /code/wordpress; index index.php index.html; loc ...

  7. 基于k8s集群部署prometheus监控ingress nginx

    目录 基于k8s集群部署prometheus监控ingress nginx 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署pro ...

  8. Maven简易笔记

    Maven笔记 Maven笔记 Maven组成 安装配置 基本概念 Maven目录的典型结构 POM文件格式 GAV 依赖 依赖管理与父项目 关于父项目的一点主意事项 repository Maven ...

  9. jquery复杂节点获取

    jquery.find方法 1 $("div").find(".1").css({"color":"red"," ...

  10. machine learning (1)

    Machine learning (1)   机器学习的两种定义 the field of study that gives computers the ability to learn withou ...