SpringMVC--使用hibernate validator数据校验

SpringMVC数据校验 永远不要相信用户的输入,我们开发的系统凡是涉及到用户输入的地方,都要进行校验,这里的校验分为前台校验和后台校验,前台校验通常由javascript来完成,后台校验主要由java来负责,这里我们可以通过spring mvc+hibernate validator。 数据校验 在java中有一个bean validation的数据验证规范,该规范的实现者有很多,其中hibernate validato... 阅读详情

JSR 303

Spring3开始支持JSR 303 验证框架,JSR303是Java为Bean数据合法性校验所提供的标准框架。JSR 303 支持XML和注解风格的验证,通过在Bean属性上标注类似于@NotNull等的标准注解指定校验规则,并通过标准的验证接口对Bean进行验证。

JSR 303注解约束

约束说明
@Null被注解的元素必须为Null
@NotNull被注解的元素必须不为Null
@AssertTrue被注解的元素必须为true
@AssertFalse被注解的元素必须为false
@Min(value)被注解的元素必须是一个数字,其值必须大于等于最小值
@Max(value)被注解的元素必须是一个数字,其值必须小于等于最大值
@DecimalMin(value)被注解的元素必须是一个数字,其值必须大于等于最小值
@DecimalMax(value)被注解的元素必须是一个数字,其值必须小于等于最大值
@Size(max,min)被注解的元素的大小必须在指定的范围内
@Digits(integer,fraction)被注解的元素必须是一个数字,其值必须在可接受范围内
@Past被注解的元素必须是一个过去的日期
@Future被注解的元素必须是一个将来的日期
@Pattern(value)被注解的元素必须符合指定的正则表达式

Hibernate Validator扩展的注解

约束说明
@NotBlank检查被注解的元素是不是Null,以及被去掉前后空格的长度是否大于0
@Email被注解的元素必须是电子邮件格式
@URL被注解的元素必须是合法的URL地址
@length被注解的字符串的大小必须在指定的范围内
@NotEmpty检查被注解的字符串必须非空
@Range被注解的元素必须在合适的范围内

实例

引入依赖
pom.xml

<dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <version>2.0.1.Final</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>5.0.1.Final</version><!-- tomcat7不支持6.0以上,el包冲突,引入el也无法解析 -->
    </dependency>

创建实体类

package pers.zhang.entity;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.Size;

/**
 * @author zhang
 * @date 2019/11/27 - 9:55
 */
public class Person {

    @NotEmpty
    @Size(min = 6, max = 20)
    private String name;

    @Range(min = 18, max = 45)
    private int age;

    @Email
    @NotEmpty
    private String email;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

Controller

package pers.zhang.cotroller;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.RequestMapping;
import pers.zhang.entity.Person;

import javax.validation.Valid;

/**
 * @author zhang
 * @date 2019/11/27 - 9:56
 */
@Controller
public class PersonController {

	/*
	  @Valid注解告诉SpringMVC,Person类的对象person在绑定表单数据后需要进行JSR 303
	  验证,绑定的结果保存到BindingResult类型的对象result中,通过判断result就可以知道
	  绑定过程是否出现错误,如果出现错误则输出。
	*/
    @RequestMapping("/testValidate")
    public String testValidate(@Valid Person person, BindingResult result){
        if(result.getErrorCount() > 0){
            for(FieldError error : result.getFieldErrors()){
                System.out.println(error.getField() + ":" + error.getDefaultMessage());
            }
        }
        return  "success";
    }
}

表单

	<form action="testValidate" method="post">
        姓名:<input type="text" name="name"><br>
        年龄:<input type="text" name="age"><br>
        邮箱:<input type="text" name="email"><br>
        <input type="submit" value="提交">
    </form>

测试
在这里插入图片描述

name:不能为空
age:需要在18和45之间
name:个数必须在6和20之间
email:不是一个合法的电子邮件地址
springmvc 使用hibernate-validator校验包 springmvc 使用hibernate-validator校验框架所需的校验包 立即下载

相关推荐

《SpringMVC从入门到精通》SpringMVC使用hibernate-validator验证需要的jar包

《SpringMVC从入门到精通》SpringMVC使用hibernate-validator验证需要的jar包 包含hibernate-validator-5.1.0.Final hibernate-validator-annotation-processor-5.1.0.Final,等等都有

Hibernate-Validator(数据校验框架)

Hibernate-Validator(数据校验框架)

weixin_45080272的博客 1万+

数据工程师——ETL

文章摘要 ETL(数据抽取、转换、加载)是数据处理的核心流程,负责将分散数据源整合为高质量数据。ETL与ELT的主要区别在于转换步骤顺序,分别适用于不同规模数据场景。数据仓库通过ETL从多个数据源集成数据,支持分析决策。维度建模中的事实表记录业务指标,维度表提供上下文信息。缓慢变化维度(SCD)处理随时间变化的维度数据,常见类型包括直接覆盖型、新增版本型等。数据清洗解决数据缺失、重复、错误等问题,确保数据质量。数据血缘记录数据流转路径,便于问题排查和影响分析。常用ETL工具如Kettle通过转换和作业实现数

weixin_45729710的博客 1559

在springmvc中使用hibernate-validate

介绍下在springmvc中使用hibernate-validate的一些基础步骤,以及分组的简单使用

qq1300375795的博客 1161

SimpleITK图像基础(一)——3D Resampling

文章目录前言基于SimpleITK进行实现 前言 进入深度学习网络之前需要进行统一数据集,这个时候需要对这些数据集进行重新采样,即假设各向同性体素并重新定向它们,以便可以读取所有图像的像素矩阵。 在将方位变换成一致时,可以用DICOMOrientImageFilter过滤器,可以将 DesiredCoordinateOrientation设置为你想要变换的方位,它将计算出所需的置换顺序并根据需要执行翻转以接近所需方向。 基于SimpleITK进行实现 workflow如下: step 1:首先运行DICOM

YYY_77的博客 2019

【Godot】实现对话系统

在 Godot 中实现对话系统(Dialogue System)是游戏开发中的常见需求。Godot本身自带的的灵活性和轻量级脚本语言 GDScript 使得实现对话系统变得相对简单。以下是实现一个基础对话系统的示例。(语言为GDScript但高亮选择Python因为类似)通过 Godot 和 GDScript,我们可以给我们的游戏实现一个对话系统。从简单的文本显示到复杂的分支对话,Godot 提供了足够的灵活性来满足我们的需求。如果需要更高级的功能,可以尝试使用现成的插件如 Dialogic。

Octopus2077的博客 2519

Spring MVC Spring 中封装Hibernate Validator,简易使用校验

Spring MVC Spring 中封装Hibernate Validator,简易使用校验 学习目录回顾 Hibernate Validator简单使用 Hibernate Validator 校验方法的参数,返回值,构造函数 Spring Validator方法级别的参数校验,方法界别参数校验的全局处理,Sping MVC使用Hibernate Validator,自定义校验器 ...

汪小哥 1880

CoaXPress协议入门(1)---- CXP测试套件

CoaXPress (简称CXP)是指一种采用同轴线缆进行互联的相机数据传输标准,主要用于替代之前的Camera Link协议,常见于科学相机、工业相机、医学图像、航空防务等场景。CXP是一个非对称的高速点对点串行传输协议,主要用于传输视频和静态图像,线缆多使用单条或多条同轴电缆。CXP易于集成,可以获得灵活可靠的性能,通过使用标准的同轴线缆,比如RG59 和 RG6规格(推荐使用RG6),并且图像、控制通讯、触发、电源都可以使用同一条线缆。

素手挽剑 9509

Spring MVC利用Hibernate Validator实现后端数据校验

吐槽一下,网上坑好多啊!不过采坑才能学习,写bug能力-1。 JSR 303、JSR 349与Bean Validator 笼统来说,就是Java规定了一套关于验证器的API,规范先后发了两版,就是所谓的JSR 303与JSR 349。然后提出了基于规范的实现:Bean Validator。JSR 303是最早的,其对应了Bean Validator 1.0的版...

iwts 1万+

Ubuntu登录界面黑屏?手把手教你排查和修复LightDM启动失败(附debug命令详解)

本文详细介绍了Ubuntu系统中LightDM(Light Display Manager)启动失败导致登录界面黑屏的排查与修复方法。通过系统状态检查、调试模式分析、常见故障解决方案及高级调试技巧,帮助用户快速定位并解决LightDM相关问题,恢复正常的图形登录环境。

weixin_34005090的博客 314

EtherCAT主站IGH-- 49 -- 搭建xenomai系统及自己的IGH主站

以上就是搭建xenomai系统及自己的IGH主站的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 3158

SpringMVC 和 Hibernate Validator的结合(初级)- 基于注解后端数据校验

注意的问题: 在Tomcat中使用需要正确的将J2EE

yszzu的专栏 3530

SAP 基于生产订单行项目外部加工创建采购申请时的一个增强需求

摘要 本文介绍在SAP系统中实现生产订单外协工序自动生成采购申请(PR)时,将指定文本写入PR抬头文本的技术方案。关键点包括: 业务背景:通过CO02事务码将工序标记为外部加工,系统自动生成PR,需在生成时自动写入抬头文本。 技术难点: PR抬头文本存储在STXH/STXL而非EBAN表 标准增强点ME_PROCESS_REQ_CUST在外协场景可能不触发 推荐方案: 使用BAdI ME_REQ_POSTED,在PR过账时点执行 通过Text Object EBANH和Text ID(如B01)写入文本 实

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

SpringMVC整合hibernate-validator后端数据校验

SpringMVC整合hibernate-validator后端数据校验

JngKang的博客 338

Pyinstaller打包为可执行文件编码错误的问题

Pyinstaller打包为可执行文件编码错误的问题 写好的python程序在vscode上运行没有任何问题,将程序利用pyinstaller打包后,运行程序发生了错误。 错误代码 UnicodeDecodeError: ‘utf-8' codec can't decode byte 0xce in position 20-21:invalid cotinuation byte 网上找到的解决方案是: 1.在命令行中输入 chcp 65001 2.按正常方式进行封装 pyinstaller

xuefeng_he的博客 1559

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

springmvc+hibernate validator对前端数据校验

hibernate-validator-5.1.2.Final用到的包和bean:package com.action; import javax.validation.constraints.Size; import org.hibernate.validator.constraints.Email; public class UserInfo { @Size(min=3,m...

qq_40757662的博客 309

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SpringMVC学习笔记六:使用 hibernate-validator注解式数据校验

    对客户端传过来的参数,在使用前一般需要进行校验。     SpringMVC框架内置了Validator验证接口,但是实现起来太麻烦。我们一般使用 hibernate-validator进行数据校验。     1:jar包配置     这个校验工具不是spring集成的,所以需要我们手动配置,主要有以下三个:          2:在springmvc配置文件中配置校验器 &lt;!-...

weixin_34220963的博客 238

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SpringMVC hibernate-validator数据校验

1、<mvc:annotation-driven/> 会默认装配好一个 LocalValidatorFactoryBean,通过在处理方法的入参上标注 @valid 注解即可让 Spring MVC 在完成数据绑定后执行数据校验的工作 在已经标注了 JSR303 注解的表单/命令对象前标注一个 @Valid,Spring MVC 框架在将请求参数绑定到该入参对象后,就会调用校验框架根...

进三步的博客 399

springmvc的validator数据校验的实现

什么是数据校验? 这个比较好理解,就是用来验证客户输入的数据是否合法,比如客户登录时,用户名不能为空,或者不能超出指定长度等要求,这就叫做数据校验。 数据校验分为客户端校验和服务端校验 客户端校验:js校验 服务端校验:springmvc使用validator校验, 二、springmvc的validation校验 Springmvc本身没有校验功能,它使用hibernate的校验框架 2.1、添加jar包             2.2、在springmvc.xml中配置validator校验器,基本上直

灰白色 778

springMVC结合hibernate validator校验数据

springMVC结合hibernate validator校验数据demo

sinat_26630143的博客 436

SpringMVC Validator 验证器使用方法汇总,自定义validator及使用hibernate-validator

参考:https://www.jianshu.com/p/f65228a5fe3e 1、实现Validator接口,定义验证器直接在方法中使用,定义方法如下,实现supports方法和validate方法: package validator; import domain.Goods; import org.springframework.stereotype.Component; ...

yzy85的专栏 1950

基于注解后端数据校验-SpringMVC 、Spring和 Hibernate Validator结合

1、依赖jar包 org.hibernate hibernate-validator 5.4.1.Final org.hibernate hibernate-validator-annotation-processor 5.4.1.Final javax.validation validation-api 2.0.

一生所爱的专栏 461

在SpringMVC中使用数据验证组件——hibernate-validator

原文出处:http://blog.51cto.com/zero01/2090999 在做web开发的时候,经常需要对客户端发送过来的数据进行一个验证,以防数据不合法。而SpringMVC支持的数据校验是JSR303的标准,通过在bean的属性上打上annotation @NotNull @Max等注解进行验证。JSR303提供有很多annotation借口,而SpringMVC对于这些验证是使用...

qq_38793958的博客 316

每日整理:SpringMVC的数据校验

数据校验的目的: 1.前端校验:通过js验证:数据长度,数据空,格式匹配 2.后端校验:避免出现脏数据,保证数据安全和完整性,原因用户直接跳过页面请求后端(一般在进行更新操作时需要使用) 手动校验(忽略) 自动校验:使用校验框架 1.添加依赖: <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</a...

swshiki的博客 414

嵌入式软件与硬件怎么选?从工作内容到薪资的全面对比

嵌入式系统开发涉及软件与硬件协同,理解其差异是职业选择的第一步。软件方向侧重代码逻辑与操作系统,硬件方向聚焦电路设计与物理调试。两者在技能栈、成长路径和行业需求上各有特点,软件岗位数量多、薪资上限高,硬件则经验积累更关键。在物联网、汽车电子等领域,软硬结合能力愈发重要。本文深入对比嵌入式软件与硬件的工作内容、能力模型、学习路线及薪资现状,帮助读者根据自身兴趣和背景做出明智选择。

weixin_34072458的博客 363
上一篇: SpringBoot--SpringMVC自动配置原理、自定义配置
下一篇: SpringMVC--使用fastjson配置详解
吴声子夜歌
博客等级 码龄9年 2687粉丝 2263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值