springboot 数据验证
不能相信前端传过来的任何数据
一定不能相信前端传过来的任何数据
绝对不能相信前端传过来的任何数据 @JsonFormat 时间必须是指定的格式(这里是接收参数格式,不是取数据来格式化)
@Null 必须为空
@NOtNUll 不能为空
@AssertTrue 布尔值必须为 true
@AssertFalse 布尔值必须为 false
@Past 时间是过去的时间(比如现在是2018-08-12 15:43:23,如果传过来的值在此时间之后就报错)
@Feauture 时间是未来时间
@NotBlank 字符串不能是 null,且长度大于 0
@Email 字符串必须是邮箱
@NotEmpty 字符串必须非空
@Min(10) 数字必须大于等于10
@Max(20) 数字必须小于等于20
@Size(min=1, max=10) 元素范围是 1-10(可以是字符串,数组,集合,Map 等)
@Length(min=1, max=10) 字符串长度范围在 1-10 之间
@Pattern(regexp = "0[0123]") 只能是 00或01或02或03
@Valid 级联注解(如果当前属性是一个 JavaBean ,这个 bean 里面的字段也要验证)
注意:在 controller 层的方法接收参数时,使用 @Valid 注解表示当前方法的参数需要验证
每个验证注解可以加 message 属性,当验证不通过时提示给用户
示例:
// 验证邮箱
@Email(message="输入的邮箱格式不正确")
private String concatEmail; // images 这个 List 不能为 null,但是每个 Image 就不好说了,具体看 @Valid 级联验证规则
@NotNull
private List<@Valid Image> images;
// list 长度至少为1,不可为 null,每个元素(String)不可为 null ,最短长度10
@NotNull
@Size(min=1)
private List<@Size(min=10) @NotNull String> list;
springboot 数据验证的更多相关文章
- SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念: SpringBoot 错误处理 2.具体内容 在之前的程序里面如果一旦出现了错误之后就会出现一堆的大白板,这个白板会 ...
- springboot(11)使用SpringBoot validator进行数据验证
简介: 数据验证是作为一个企业级项目架构上设计的最基础的模块,前辈们曾说过:界面上传递到后台的数据没有百分之百值得相信的!为什么这么说呢?往往我们在编写程序的时候都会感觉后台的验证无关紧要,这样就会给 ...
- 使用SpringBoot进行优雅的数据验证
JSR-303 规范 在程序进行数据处理之前,对数据进行准确性校验是我们必须要考虑的事情.尽早发现数据错误,不仅可以防止错误向核心业务逻辑蔓延,而且这种错误非常明显,容易发现解决. JSR303 规范 ...
- 我这么玩Web Api(二):数据验证,全局数据验证与单元测试
目录 一.模型状态 - ModelState 二.数据注解 - Data Annotations 三.自定义数据注解 四.全局数据验证 五.单元测试 一.模型状态 - ModelState 我理解 ...
- MVC 数据验证
MVC 数据验证 前一篇说了MVC数据验证的例子,这次来详细说说各种各样的验证注解.System.ComponentModel.DataAnnotations 一.基础特性 一.Required 必填 ...
- kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件
小菜利用工作之余编写了一款Java小插件,主要是用来验证Web请求的数据,是在服务器端进行验证,不是简单的浏览器端验证. 小菜编写的仅仅是一款非常初级的组件而已,但小菜为它写了详细的说明文档. 简单介 ...
- MVC3 数据验证用法之密码验证设计思路
描述:MVC数据验证使用小结 内容:display,Required,stringLength,Remote,compare,RegularExpression 本人最近在公司用mvc做了一个修改密码 ...
- jQuery MiniUI开发系列之:数据验证
在开发应用系统界面时,往往需要进行很多.复杂的数据验证,当填写的数据符合规定,才能提交保存. jQuery MiniUI提供了比较完美的表单数据验证和错误显示的方式. 常见的表单控件,都有一个验证事件 ...
- AngularJS快速入门指南14:数据验证
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
随机推荐
- vim常用命令行备忘总结
一 窗口切换 1 :sp 水平切换当前窗口 2 :vsp 垂直切换当前窗口 3 :clo 关闭活动窗口 4 : on 只保留活动窗口 5 : ctrl + w 在窗口间循环切换 ctrl + ...
- 哈尔特征Haar
哈尔特征(Haar-like features) 是用于物体识别的一种数字图像特征.它们因为与哈尔小波转换 极为相似而得名,是第一种即时的人脸检测運算. 历史上,直接使用图像的强度(就是图像每一个像素 ...
- ajax实现异步前后台交互,模拟百度搜索框智能提示
1.什么是异步?在传统的网站项目中,填写一堆数据,最后点击提交,在点击提交的这一刻才实现数据提交,前后台交互.在你点击提交之前数据是没有提交到后台的.这样就会造成很大的不便.比如,我填了一大堆数据,结 ...
- linux 清空历史命令
系统版本:CentOS 6 history -c 命令可以清空当前窗口的历史输出命令. 要彻底删除历史命令可以有如下几种方式: 在当前用户的-目录下执行: 方式1: echo > .bash_h ...
- springBoot(10)---logback日志
logback日志 一.概述 和log4j优点: 实际上,这两个日志框架都出自同一个开发者之手,Logback 相对于 Log4J 有更多的优点 (1)logback不仅性能提升了,初始化内存加载也 ...
- leetcode — plus-one
import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Source : https://o ...
- MySQL索引建立和使用的基本原则
合理设计和使用索引 在关键字段的索引上,建与不建索引,查询速度相差近100倍. 差的索引和没有索引效果一样. 索引并非越多越好,因为维护索引需要成本. 每个表的索引应在5个以下,应合理利用 ...
- Tomcat类加载架构
前言 主流的Java Web服务器(Tomcat.Jetty.WebLogic.WebSphere等)都有多个自定义的类加载器以及具备的类加载优势,本篇博文主要是通过以Tomcat为例简单认识Java ...
- 【golang-GUI开发】qt之signal和slot(一)
想了很久,我决定还是先从signal和slot(信号槽)开始讲起. signal和slot大家一定不陌生,先看一段示例(选自文档): class Counter : public QObject { ...
- 【转载】Windows服务器修改远程桌面默认端口
因为 windows服务器远程桌面端口默认是 3389端口,使用系统默认端口的风险很大,很容易被攻击软件扫描以及攻击,同时频繁的扫描和攻击会导致服务器的 CPU 及带宽资源耗尽,因此为了保证服务器的安 ...