Spring MVC JSR 303 数据效验

浅析JSR303 验证作用、使用及使用场景、spring mvc下使用JSR303 一、JSR-303简介 JSR-303 是 Java EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。 此实现与 Hibernate ORM 没有任何关系。 JSR 303 用于对 Java Bean 中的字段的值进行验证。  Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的 阅读详情

Spring数据校验

    Spring有自己的校验框架,同时也支持JSR 303 的校验,这里主要介绍Spring使用JSR 303的校验,Spring的校验框架主要方法org.springframework.vaildation包中。需要注意,Spring并没有提供JSR 303规范的实现,所以必须添加JSR303的实现者jar包(比如Hibernate Validator),Spring JSR 303 校验使用相当简单,只需要在需要验证的Bean中加入验证的注解,再在Sping MVC 方法入参时,在该Bean前面加上@Valid即可,例:

public Class user {
private String userId;

//使用正则表达式效验,匹配4~30个数字或字母或下划线的字符
@Pattern(regexp="w{4, 30}")
private String userName;

//长度在8~20之间
@Length(min=8, max=20)
private String passWord;

//时间必须是过去的时间
@Past
@DateTimeFormat(pattern="yyy-MM-dd")
private Date createDate;

//数据必须大于1000小于100000
@DecimalMin(value="1000.00")
@DeciamlMax(value="100000.00")
@NumberFormat(pattern="#,###.##")
private long salary;

}
Controller中:

@Controller
public class UserController {

@RequestMapping(value = "/user", method = RequestMethod.POST)
public String addUser(@Valid User user, BindingResult result) {
   ......
}

}
在Spring MVC将User对象绑定入参后会进行校验,结果会放在后面的BindingResult或者Errors对象中。

注意:BindingResult或者Errors必须紧跟在需要验证的Bean后面,如果其间有其他的入参会直接报异常

用于效验的Annotation:

@AssertTrue / @AssertFalse

验证适用字段:boolean

注解说明:验证值是否为true / false

属性说明:-

@DecimalMax / @DecimalMin

验证适用字段:BigDecimal,BigInteger,String,byte,short,int,long

注解说明:验证值是否小于或者等于指定的小数值,要注意小数存在精度问题

属性说明:公共

@Digits

验证适用字段:BigDecimal,BigInteger,String,byte,short,int,long

注解说明:验证值的数字构成是否合法

属性说明:integer:指定整数部分的数字的位数。fraction: 指定小数部分的数字的位数。

@Future / @Past

验证适用字段:Date,Calendar

注解说明:验证值是否在当前时间之后 / 之前

属性说明:公共

@Max / @Min

验证适用字段:BigDecimal,BigInteger,String,byte,short,int,long

注解说明:验证值是否小于或者等于指定的整数值

属性说明:公共

@NotNull / @Null

验证适用字段:引用数据类型

注解说明:验证值是否为非空 / 空

属性说明:公共

@Pattern

验证适用字段:String

注解说明:验证值是否配备正则表达式

属性说明:regexp:正则表达式flags: 指定Pattern.Flag 的数组,表示正则表达式的相关选项。

@Size

验证适用字段:String,Collection,Map,数组

注解说明:验证值是否满足长度要求

属性说明:max:指定最大长度,min:指定最小长度。

SpringMVC 数据校验(JSR303) 点击下载所需要的jar包下载(Hibernate官网)(Hibernate Validator 6.0) 所必须的jar包 简介 • Spring 4.0 拥有自己独立的数据校验框架,同时支持 JSR 303 标准的校验框架。 • Spring 在进行数据绑定时,可同时调用校验框架完成数据校验工作。在 Spring MVC 中可直接通过注解驱动的方式进行数据校验 。 • Spring... 阅读详情

相关推荐

JSR-303 Spring MVC 验证消息国际化 配置

本文中的各项软件版本: Spring:

qiguer_xmz的专栏 860

JSR303校验

JSR是Java Specification Requests的缩写,意思是Java 规范提案 JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation即,JSR 303,Bean Validation规范 ,为Bean验证定义了元数据模型和API.。默认的元数据模型是通过Annotations来描述的,但是也可以使用XML来重载或者扩展。

Hola 4361

SpringMVC_JSR303数据校验

数据校验;只做前端校验是不安全的;在重要数据一定要加上后端验证; JSR303数据校验如何校验 ①使用JSR 303验证标准 ②加入hibernate validator验证框架 ③在SpringMVC配置文件中增加mvc:annotation-driven/ ④需要在bean的属性上增加对应验证的注解 ⑤在目标方法bean类型的前面增加@Valid注解 验证出错后,跳转到哪个页面 错误消息,如何显示,如何国际化 JSR 303 是 Java 为 Bean 数据合法性校验提供的标准框架,它已

cai_ing的博客 370

JSR-303数据校验

JSR-303数据校验

junR_980218的博客 2166

【STM32实战】利用STM32CubeMX配置PWM互补输出驱动电机

本文详细介绍了如何利用STM32CubeMX配置STM32高级定时器的PWM互补输出功能,以驱动电机等需要半桥/全桥电路的应用。通过图形化界面设置定时器参数、使能互补通道并配置关键的死区时间,结合代码示例演示了如何启动PWM输出和动态调整占空比,确保输出安全、精确的互补信号,避免MOS管直通风险,提升驱动可靠性。

weixin_29161785的博客 536

基于RK3588的高效音视频对讲系统设计与实现

本文详细介绍了基于RK3588芯片的高效音视频对讲系统设计与实现。文章深入剖析了RK3588在8K编解码、高性能音频DSP及丰富接口方面的优势,并提供了从开发环境搭建、分层软件架构设计,到视频采集编码、音频回声消除及低延迟网络传输的完整实战指南,旨在帮助开发者充分利用该芯片硬件能力,构建稳定、低延迟的实时通信系统。

dapp9builder的博客 258

SpringBoot:yaml注入,JSR303数据校验

一、yaml YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。 yaml语法采用多行缩进,对比XML格式,yaml精简、可读性高 yaml语法格式: 属性:空格 值 以缩进来控制层级关系,只要左对齐则是同一级 大小写十分敏感 二、yaml注入

半山腰太挤了,你要去山顶看看 1070

保姆级教程:手把手教你用Python逆向分析极验4.0滑块验证码的w参数生成逻辑

本文提供了一份详细的Python逆向工程教程,手把手教你分析极验4.0滑块验证码的w参数生成逻辑。通过HTTP请求分析、JavaScript逆向和加密算法复现,帮助开发者深入理解验证码防护机制,并实现高效的自动化解决方案。教程涵盖AST反混淆、轨迹生成算法和AES加密等核心技术,适合中高级开发者提升逆向工程能力。

weixin_30172941的博客 304

JSR303数据校验方法

使用JSR303做后台数据校验是有效确保非法数据绕过前端提交数据,必须确保数据的有效性和准确性。 二、在实体类上加入注解1.@NotNull:不能为null,但可以为empty (“”,”“,”“)2.@NotEmpty:不能为null,而且长度必须大于0 (”“,”“)3.@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0 三、后台 controller 中验证提交的信息提交参数中加入@Valid注解,并............

Tiger_Paul的博客 1114

手把手用ROS实现Ego-Planner动态避障:无人机撞树问题终结方案

本文详细介绍了如何在ROS和Gazebo仿真环境中,通过配置和调优Ego-Planner算法,实现无人机的动态避障功能。文章深入解析了其基于局部梯度优化的核心思想,提供了从环境搭建、参数详解到代码集成的完整实践指南,并分享了实战排错经验,旨在彻底解决无人机在复杂动态场景中的碰撞问题。

weixin_29031161的博客 1633

基于STM32的工业设备状态监测系统

工业设备的预测性维护需求日益增长,本文设计了一款基于STM32的智能监测终端,可实时采集设备振动、温度、电流等关键参数,通过边缘计算分析设备健康状态,实现故障预警与能效优化。系统支持4G/LoRa远程通信,适用于工厂、发电站等工业场景。本系统实现了工业设备关键参数的实时监测,故障识别准确率达到92%。:STM32F429(带FPU,支持浮点运算)多参数联合判据(振动+温度+电流突变检测)ACS712电流检测模块(0-30A)FFT频谱分析(识别轴承故障特征频率)故障代码生成(支持16种预设故障类型)

stm32d1219的博客 1328

狂神说SpringBoot04:JSR303数据校验及多环境切换

狂神说SpringBoot系列连载课程,通俗易懂,基于SpringBoot2.2.5版本,欢迎各位狂粉转发关注学习。未经作者授权,禁止转载JSR303数据校验先看看如何使用Springb...

狂神说 4586

如何安装PyFluent

PyFluent 是PyAnsys生态系统的一部分, 允许您在所选的 Python 环境中结合使用 Fluent 与其他 PyAnsys 库和外部 Python 库一起使用。PyFluent 实现了客户端-服务器体系结构。它使用谷歌遥控器 过程调用或 gRPC 接口,用于启动或连接正在运行的 Fluent 进程作为服务器。但是,您只需要与 Python 交互接口。可以使用 PyFluent 以编程方式创建、交互和控制 Fluent 会话,用于创建您自己的自定义工作区。

B_etter_Man的博客 2928

Spring MVC表单,数据效验,上传下载文件

Spring表单 Spring提供了自己的一套表单标签库,通过使用Spring标签库,可以很容易的将模型数据中的表单对象绑定到HTML表单元素中。 使用步骤: 第1步: 编写SpringMVC表单 示例: <%@taglib prefix="fm" uri="http://www.springframework.org/tags/form" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> &l

yananye的博客 243

LayaBox CommandBuffer描边使用详细

项目需要使用LayaBox做一个给3D物体动态描边的一个功能,前前后后踩了一些坑算是把这个东西给做出来了把我改好的代码贴上,分享给大家。 (1)想要使用描边你的引擎版本必须 >=2.9.0 (2)你必须下载 Laya官方的BlurShader库才能使用这个功能,下载地址:https://github.com/layabox/layaair-demo/tree/master/h5/3d/ts/LayaAir3D_PostProcess/BlurShader 下载完之后把BlurShader放到自己项目的

小智队长 1735

Python爬虫实战:使用最新技术爬取新华网新闻数据

在当今信息爆炸的时代,网络爬虫技术已经成为获取互联网数据的重要手段。作为国内权威新闻媒体,新华网每天发布大量高质量的新闻内容,这些数据对于舆情分析、市场研究、自然语言处理等领域具有重要价值。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的新华网新闻爬虫系统。本文详细介绍了如何使用Python最新技术栈构建一个高效、稳定的新华网新闻爬虫系统。我们从基础爬虫开始,逐步添加了代理支持、用户代理轮换、请求延迟、重试机制、动态页面渲染、数据存储等高级功能,最终实现了一个生产可用的分布式爬虫系统。

2201_76125261的博客 1771

Spring MVC 中如何使用JSR 303实现数据校验

JSR 303: 1.JSR 303 是 Java 为 Bean 数据合法性校验提供的标准框架,它已经包含在 JavaEE 6.0中; 2.JSR 303 通过在 Bean 属性上标注类似于 @NotNull、@Max 等标准的注解指定校验规则,并通过标准的验证接口对 Bean 进行验证; Hibernate Validator : Hibernate Validator 是 JSR 303 的...

Xduzhang的博客 833

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

spring中使用@Validated,什么是JSR 303数据校验,spring boot中怎么使用数据校验

spring、spring boot

zhangfuping123456789的博客 5822

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SAP B1中文培訓教材_SDK

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

spring mvc 使用jsr-303 @Valid实现bean的字段验证

JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,官方参考实现是Hibernate Validator。  此实现与Hibernate ORM 没有任何关系。JSR 303 用于对Java Bean 中的字段的值进行验证。  Spring MVC 3.x之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。  JSR 303

wdyr321的专栏 6617

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JSR-303

JSR-303简介、配置与使用

m0_67496588的博客 854

Spring-MVC使用JSR303及拦截器,增强网络隐私安全

JSR 303是Java规范请求(Java Specification Request)的一部分,它定义了一套标准的Java Bean验证规范,也被称为Bean验证。它提供了一种简单而强大的方式来验证Java对象的属性的值。 拦截器(Interceptor)是一种在请求处理过程中,对请求进行拦截和处理的机制。它可以在请求到达目标处理器之前、之后或者完全替代目标处理器来执行一些特定的操作。拦截器通常用于实现一些横切关注点(Cross-cutting Concerns),如日志记录、权限验证、性能监控等。

SAME_LOVE的博客 1022

Spring 3 MVC和JSR303 @Valid示例

在Spring 3中,如果类路径上有任何JSR 303验证程序框架,则可以启用@ mid :annotation-driven来通过@Valid注释支持JSR303 bean验证 。 注意 Hibernate Validator是JSR 303的参考实现 在本教程中,我们向您展示如何通过@Valid批注将Hibernate验证器与Spring MVC集成,以HTML形式执行bean验证...

一名可爱的技术搬运工 206

JSR303参数校验

1、Spring mvc 的表单验证 客户端表单验证:代码写在js上,容易被攻击。 服务端表单验证 :不容易被攻击,它是在后台进行验证就不会被人恶意攻击,不容易被人随意登陆其他的信息或者窃取他人信息。 如果使用需要JSR303 ,就要导入hibernate-validator依赖 &lt;dependency&gt; &lt;groupId&gt;org.hibernate&lt;/g...

cao_2000的博客 2498

SpringMVC中使用JSR303进行数据校验实践详解

前面学习了SpringMVC的数据类型转换和格式化。今天学习SpringMVC的数据校验。【1】JSR 303JSR 303 是Java 为Bean 数据合法性校验提供的标准框架,它已经包含在JavaEE6.0中。JSR 303 通过在Bean属性上标注类似于@NotNULL、@Max等标准的注解指定校验规则,并通过标准的验证接口对Bean进行验证。【2】Hibernate Validator扩展注

小小默:进无止境 2790

springMvc JSR 303数据校验

JSR-303简介 Spring 3.0拥有直接独立的数据校验框架,同时支持JSR 303标准的校验框架,spring的DataBinder在进行数据绑定时,可以同时调用校验框架完成数据校验工作。在Spring MVC中,则可以直接通过注解驱动的方式进行数据校验。 Spring的org.springframework.validation是校验框架所在的包。 JSR 303 JSP 303是...

Yang_Hui_Liang的博客 490

JSR303及其实现

JSR303及其实现

王文萱的博客 1308
上一篇: SpringMVC 使用JSR-303进行校验 @Valid
下一篇: Hive内存溢出
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值