Java学习----spring注解式参数校验

详解 BindingResult 和前端传值校验 在开发 Web 应用程序时,前端传值的校验是非常重要的一环。Spring 框架提供了 BindingResult 对象来处理数据绑定和校验结果。本文将详细介绍 BindingResult 的作用和使用方法,帮助你在后端处理前端传值校验的过程中更加灵活和准确。BindingResult 是 Spring 框架中的一个接口,用于处理数据绑定和校验结果。它通常与 @ModelAttribute 或 @Valid 注解一起使用,用于接收前端传递的数据,并将校验结果存储在其中。 阅读详情

1.@RequestMapping(value=”/template”, method = RequestMethod.POST)

声明请求的路径以及请求的方式
2.@ResponseBody

声明请求参数都是以json的形式接收

3.bean上加注解验证

@NotBlank

private String name;

事例:

1.验证用户名的格式

@NotBlank(message = “用户名不能为空”)
@Length(min=5, max=20, message=”用户名长度必须在5-20之间”)
@Pattern(regexp = “1\w{4,19}$”, message = “用户名必须以字母下划线开头,可由字母数字下划线组成”)
private String username;

2.验证必须为int且范围在 A-B之间(包括A和B)

@Range(min=0, max=4)

private int scale;//基础规格

3.验证List不为空

@NotEmpty

private List userList;

4.对象内包含List<对象>的校验

@Valid

@NotEmpty

private List userList;

这样即可以实现对list里面的对象的校验了

规则:

@AssertFalseBoolean,boolean验证注解的元素值是false
@AssertTrueBoolean,boolean验证注解的元素值是true
@NotNull任意类型验证注解的元素值不是null
@Null任意类型验证注解的元素值是null
@Min(value=值)BigDecimal,BigInteger, byte,short, int, long,等任何Number或CharSequence(存储的是数字)子类型验证注解的元素值大于等于@Min指定的value值
@Max(value=值)和@Min要求一样验证注解的元素值小于等于@Max指定的value值
@DecimalMin(value=值)和@Min要求一样验证注解的元素值大于等于@ DecimalMin指定的value值
@DecimalMax(value=值)和@Min要求一样验证注解的元素值小于等于@ DecimalMax指定的value值
@Digits(integer=整数位数, fraction=小数位数)和@Min要求一样验证注解的元素值的整数位数和小数位数上限
@Size(min=下限, max=上限)字符串、Collection、Map、数组等验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小
@Pastjava.util.Date,java.util.Calendar;Joda Time类库的日期类型验证注解的元素值(日期类型)比当前时间早
@Future与@Past要求一样验证注解的元素值(日期类型)比当前时间晚
@NotBlankCharSequence子类型验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的首位空格
@Length(min=下限, max=上限)CharSequence子类型验证注解的元素值长度在min和max区间内
@NotEmptyCharSequence子类型、Collection、Map、数组验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
@Range(min=最小值, max=最大值)BigDecimal,BigInteger,CharSequence, byte, short, int, long等原子类型和包装类型验证注解的元素值在最小值和最大值之间
@Email(regexp=正则表达式,flag=标志的模式)CharSequence子类型(如String)验证注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式
@Pattern(regexp=正则表达式,flag=标志的模式)String,任何CharSequence的子类型验证注解的元素值与指定的正则表达式匹配
@Valid任何非原子类型指定递归验证关联的对象;如用户对象中有个地址对象属性,如果想在验证用户对象时一起验证地址对象的话,在地址对象上加@Valid注解即可级联验证

  1. a-zA-Z_ ↩︎

Spring AOP完成一个简单的参数统一校验框架 最近刚刚学习了Spring AOP,也是首次使用Spring AOP进行项目开发,尝试写了一个简单的参数校验框架,也许对像我一样新接触spring AOP的童鞋有所参考,故此分享,若有不合理的地方,请大神帮忙指正,非常感谢!      搭建Spring开发环境这里就不详细说明了,除了spring的一些核心包,再引入spring-aop.jar即可。      我想要做的效果是:在所有的Cont 阅读详情

相关推荐

Spring MVC参数预处理与校验冲突的三种解决方案

在Web后端开发中,参数校验是确保数据有效性和系统安全性的关键环节,通常通过注解如@Valid和@NotNull实现。其原理是Spring MVC框架在调用Controller方法前,通过HandlerMethodArgumentResolver解析参数,并触发Validator进行校验。这项技术的核心价值在于拦截非法数据,保障业务逻辑的稳定执行。然而,当需要对请求参数进行全局预处理,例如解密或脱敏时,传统的Filter或Interceptor操作可能会破坏Spring原生的参数解析与校验流程,导致校验失效

weixin_33682790的博客 2031

Spring注入Hibernate验证框架

Spring配置文件 <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">                           <bean id="validator" cla

我只是一个简单的Coder,为了兴趣和理想奋斗在生活的道路上 1464

Controller 层参数校验方案

思路 Controller层有两种校验场景 单个参数的校验 // 用户登录 Controller 方法 @PostMapping("/login") public Message login(String verifyCode,String account,String password){ //.... return null; } 实体类的校验 实体类User...

晴天天天蓝 1946

SpringBoot:常用参数注解使用

在springboot的controller中常用的参数注解有:@PathVariable、@RequestHeader、@ModelAttribute、@RequestParam、@MatrixVariable、@CookieValue、@RequestBody 其中每一个注解的作用可参考下面的例子 @GetMapping("/car/{id}/owner/{owner}") public Map<String,Object>getCar(@PathVariable("id") Intege

Hugo的博客 2104

Ubuntu升级遇到grub-efi-amd64-signed报错?3步搞定这个烦人的EFI目录问题

本文详细解析了Ubuntu系统升级时遇到的“grub-efi-amd64-signed”报错及“cannot find EFI directory”问题。通过剖析UEFI启动机制与EFI系统分区原理,提供了从诊断到修复的三步解决方案,帮助用户快速解决因EFI目录未挂载导致的升级中断,确保系统引导正常。

assembly8low的博客 584

现代 AI Agent 编排技术全景(1)—— 分类体系与四大技术维度

本文介绍基于 LLM 的现代 Agent 分类体系与四大技术维度,形成能够刻画不同 Agent 产品架构特征的分类法

佚失的诗篇 232

Springboot中请求url的注解

springboot中映射请求路径的注解有哪些: @RequestMapping @PostMapping:组合注解,是@RequestMapping(method = RequestMethod.PUT)的缩写 @GetMapping:组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写 @PutMapping:@PostMapping...

just love code 3271

【编号326】全国地灾数据全国25万多个地质灾害点空间分布数据

全国地质灾害点分布数据涵盖25万多个各类灾害点信息,为灾害防治提供重要依据。通过分析灾害分布规律,可识别高风险区,指导监测预警、应急避险和基础设施建设。多地成功案例(如湖北兴山崩塌避险、重庆长寿滑坡预警、湖南"挪床行动")证明,提前预警和科学防治能有效避免人员伤亡。云南省2024年通过预警体系成功避让31起灾害,保护1342人生命安全。这些实践表明,地质灾害防治需结合科技手段与群防体系,实现早预警、早处置。

千奇百怪无奇不有 1467

BindingResult总结以及注意事项

BindingResult总结以及注意事项 记一个简单又好用的API:BindingResult BindingResult使用起来很简单,一般在controller中使用 作用:用于对前端穿进来的参数进行校验,省去了大量的逻辑判断操作 相关的校验API: 空检查 @NotEmpty:用在集合类上面;不能为null,而且长度必须大于0 @NotBlank: 用在String上面;只能作用在String上,不能为null,而且调用trim()后,长度必须大于0 @NotNull:用在基本类型上;不能为null

huluwa10526的博客 1万+

STM32G474实战:数字LLC电源控制程序从零到跑通(附完整代码解析)

本文详细介绍了基于STM32G474微控制器开发数字LLC电源控制程序的完整实战流程。从硬件平台搭建、CubeMX工程配置,到核心控制逻辑、双速率中断框架、数字PID实现,再到Burst模式、状态机等高级策略与异常处理,提供了从零到跑通的系统化指南与代码解析,助力开发者掌握高效数字电源的程序编写与调试技巧。

s1t2u3的博客 1237

S32K系列之PDB框图详解及PDB触发ADC

可编程延迟模块PDB,PDB可提供从内部或外部触发或可编程间隔信号到ADC硬件触发输入的可控制延迟。 PDB可以选择提供脉冲输出,用作CMP块中的采样窗口。 S32K系列的PDB资源如下表: PDB功能框图 在下图中,以下字母表示的意义: N:PDB通道的总数 n:PDB通道号,范围从0到N-1 M:每个PDB通道的总可用预触发 m:预触发编号,范围从0到M-1 Y:脉冲输出的总数 y:脉冲数...

zz56z56的博客 1万+

校验程序_程序员在controller写了一堆if参数校验!领导:明天不用来了

分享阿里 P8 高级架构师吐血总结的 《Java 核心知识体系&面试资料.pdf》据说是阿里 P8 级高级架构师吐血总结的一份 Java 核心知识.pdf, 内容覆盖很广,Java 核心基础、Java 多线程、高并发、Spring、微服务、Netty 与 RPC、Zookeeper、Kafka、RabbitMQ、Habase、设计模式、负载均衡、分布式缓存、Hadoop、Spark、Sto...

weixin_42144707的博客 342

STM32 FDCAN热插拔恢复机制与自动重发功能优化

本文深入分析了STM32 FDCAN在热插拔场景下触发bus-off状态导致通讯中断的根本原因,指出自动重发功能是问题关键。通过禁用自动重发、配置硬件自动恢复机制及优化总线参数,实现了FDCAN热插拔后的100%稳定恢复,为工业应用提供了可靠的CAN总线解决方案。

ice55的博客 685

spring注解式参数校验

spring hibenate注解式参数验证

凤歌 9万+

让 IF 更好读:在 ABAP 里尽量使用正向条件的实战指南

摘要:SAP系统开发中,代码可读性与可维护性的关键往往在于条件判断的写法。Clean ABAP风格指南建议尽量采用正向表达的条件判断,如使用has_entries = abap_true而非否定式写法。正向表达能降低理解成本,避免"否定的否定"带来的逻辑混乱,但不应为追求正向而制造空分支。在团队协作中,正向条件更利于代码评审和测试覆盖,建议通过工具检查和智能评审确保规范执行。落地时可关注变量命名正向化、避免空分支、主流程清晰展开等要点,以提升长期维护效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 245

【06】新国都——新国都 嵌入式笔试,校招,题目记录及解析

本文总结了新国都嵌入式校招笔试题目及解析,内容涵盖C语言基础、Linux系统、数据结构与算法等多个方面。主要包括:1)不定项选择题10道,涉及字符串常量、蓝牙与GPRS区别、编译错误识别等;2)判断题10道,考察Linux权限、循环控制、内存管理等;3)填空题5道,包括编码计算、逻辑运算、宏定义等;4)简答题2道,解析全局变量引用和进程线程区别。题目难度适中,重点考察嵌入式开发基础知识和编程能力,并提供详细解析和扩展知识链接,对准备嵌入式相关笔试具有参考价值。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1430

java 注解 参数校验_spring注解式参数校验

很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者返回异常时的校验信息,在代码中相当冗长,今天我们就来学习spring注解式参数校验.其实就是:hibernate的validator.开始啦......1.controller的bean加上@Validated就像这样1 @ApiOperation(value = "用户登录接口", notes = "用户登录")2 @Post...

weixin_35620886的博客 512

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Spring注解式参数校验

一般入参我们都会转为vo对象。那么直接在对象的属性上注解即可。  其实spring用的是hibernate的validator. 步骤 1.配置spring.xml &lt;mvc:annotation-driven /&gt;   2.配置自己的validate类。 &lt;bean id="validateArgsAOP" class="com.my.validate.aop...

污萌萌小金鱼的博客 383

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

spring的javax.validation 注解式参数校验.

为什么要用validator javax.validation的一系列注解可以帮我们完成参数校验,免去繁琐的串行校验 不然我们的代码就像下面这样: // http://localhost:8080/api/user/save/serial /** * 走串行校验 * * @param userVO * @return */ @PostMapping("/save/serial") public Object.

会写Bug的攻城狮 3446

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

参数校验(validator)详解

作者:锦成同学 juejin.im/post/5d3fbeb46fb9a06b317b3c48 很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者不断的返回异常时的校验信息,在代码中相当冗长, 充满了if-else这种校验代码,今天我们就来学习spring的javax.validation 注解式参数校验. 为什么要用validator 1.javax.validation的一系列注...

xnn_fjj的博客 3万+

【备忘录】spring注解式参数校验

spring注解式参数校验校验规则范例 校验规则 注解 适用的数据类型 说明 @AssertFalse Boolean,boolean 验证注解的元素值是false @AssertTrue Boolean,boolean 验证注解的元素值是true @NotNull 任意类型 验证注解的元素值不是null @Null 任意类型 验证注解的元素值是null @Min(value=值) BigDecimal,BigInteger, byte,short, int, long,等

xuxchen的专栏 307

SpringBoot 注解式参数校验

为了项目能正常运行,避免不了对参数的大量校验,这些校验的代码大量且无脑,虽然一般要求前端也要对参数进行校验,但是前端的参数校验是为了用户体验,后端的参数校验是为了安全。毕竟后端是最后的防守线。 那有没有简单的方式实现同样的效果呢? 必须有啊!只要有问题就花时间去了解去解决,对症下药就好了。总有人会比我们先发现问题并提出解决方案的。 javax.validation包 Bean Validation是Java定义的一套基于注解的数据校验规范,目前已经从JSR 303的1.0版本升级到JSR 349.

求生的码农博客 724

java开发中如何优雅的完成参数校验

java开发中如何优雅的完成参数校验 文章目录java开发中如何优雅的完成参数校验@[toc]为什么要用validator实战演练1. @Validated 声明要检查的参数2. 对参数的字段进行注解标注3. 在全局校验中增加校验异常4. 测试自定义参数注解1. 比如我们来个 自定义身份证校验 注解2. 然后自定义Validator3. 使用自定义的注解4.使用groups的校验5.restful...

weixin_43938877的博客 798
上一篇: mysql常用的一些查询语句
下一篇: 超详细云服务器mysql数据库创建以及遇到的问题处理解决
Cao_Shixin攻城狮
博客等级 码龄10年 710粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值