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. ASP.NET EF实体主外键关系

    其他解释 https://www.cnblogs.com/wuhenke/archive/2010/08/11/1797307.html 主键.外键 需要删除完外键表才能删除主键表 一对一关系peop ...

  2. Java开发环境搭建(一)

    一.JDK与JRE JDK:Java Development Kit,Java开发工具包,是给开发人员使用的,其中包含了Java的开发工具,如java.javac.jar等命令,同时也包含了JRE. ...

  3. HTML学习摘要4

    DAY 4 text-align 属性规定了元素中文本的水平对齐方式: <html> <body> <h1 style="text-align:center&q ...

  4. 9.如何让一个div 上下左右居中?【CS

      方法1:[绝对定位50%-本身50%]              position:absolute; left:50%; top:50%;              transform: tra ...

  5. npm 安装 react-devtools

    由于不能科学的上网.网上看资料装上了这个插件,装的过程有点坑.记录一下,希望能帮到和我一样的新手. 1.第一步,克隆下远程仓库的东西. 桌面右键,git-bash.然后输入: git clone ht ...

  6. thinkPHP中session()方法用法详解

    本文实例讲述了thinkPHP中session()方法用法.分享给大家供大家参考,具体如下: 系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成. 用法 ? ...

  7. c#读写apk的 comment

    写入: ZipFile zipFile = new ZipFile("C:\\Users\\Administrator\\Desktop\\2.apk"); zipFile.Beg ...

  8. Vue检测当前是否处于mock模式

    Vue检测当前是否处于mock模式 1.在main.js中声明全局变量: import Vue from 'vue' /* 全局变量 */ var GLOBAL_VARIABLE = { isMock ...

  9. Host is not allowed to connect to this MySQL server

    解决方法: [root@GYQ-Prod-Zabbix ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Com ...

  10. mysql学习之基础篇02

    我们来说一下表的增删改查的基本语法: 首先建立一个简单的薪资表: create table salary(id int primary key auto_increment,sname varchar ...