SpringBoot项目中,表单的验证操作

在创建Springboot项目中,我们使用了表单验证操作,这一操作将极大地简化我们编程的开发

1.接收数据,以及验证

1@PostMapping("/save") 2 public ModelAndView save(@Valid ProductForm productForm, 3 BindingResult bindingResult, 4 Map<String, Object> map) { 5 //1.表单验证 6 if (bindingResult.hasErrors()) { 7 map.put("msg", bindingResult.getFieldError().getDefaultMessage()); 8 map.put("url", "sell/seller/product/index"); 9 return new ModelAndView("common/error", map); 10 } 11}

2.实体类注解

1package com.xiong.sell.form; 2 3import lombok.Data; 4 5import javax.validation.constraints.NotEmpty; 6import java.math.BigDecimal; 7 8/** 9 * @author Xiong YuSong 10 * 2019/1/27 12:46 11 */ 12@Data 13public class ProductForm { 14 private String productId; 15 16 /** 名字. */ 17 @NotEmpty(message = "名字必填") 18 private String productName; 19 20 /** 单价. */ 21 private BigDecimal productPrice; 22 23 /** 库存. */ 24 private Integer productStock; 25 26 /** 描述. */ 27 @NotEmpty(message = "描述必填") 28 private String productDescription; 29 30 /** 小图. */ 31 @NotEmpty(message = "图片必填") 32 private String productIcon; 33 34 /** 类目编号. */ 35 private Integer categoryType; 36}

3.下面是表单验证的所有操作标签

1@Null 2 3限制只能为null 4 5@NotNull 6 7限制必须不为null 8 9@AssertFalse 10 11限制必须为false 12 13@AssertTrue 14 15限制必须为true 16 17@DecimalMax(value) 18 19限制必须为一个不大于指定值的数字 20 21@DecimalMin(value) 22 23限制必须为一个不小于指定值的数字 24 25@Digits(integer,fraction) 26 27限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction 28 29@Future 30 31限制必须是一个将来的日期 32 33@Max(value) 34 35限制必须为一个不大于指定值的数字 36 37@Min(value) 38 39限制必须为一个不小于指定值的数字 40 41@Past 42 43限制必须是一个过去的日期 44 45@Pattern(value) 46 47限制必须符合指定的正则表达式 48 49@Size(max,min) 50 51限制字符长度必须在min到max之间 52 53@Past 54 55验证注解的元素值(日期类型)比当前时间早 56 57@NotEmpty 58 59验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为060 61@NotBlank 62 63验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 64 65@Email 66 67验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )