SpringMVC_数据校验
数据校验分为前台校验和后台校验,前台校验主要是利用JavaScript来完成的,后台校验主要利用Java代码来完成的,可以使用SpringMvc和Hibernate validator来完成数据校验
1:导入Maven相关Jar包(在父pom.xml文件中)
<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>6.0.9.Final</version> </dependency>2:创建Java类需要校验的数据属性上添加相应的注解
package com.doaoao.check; import javax.validation.constraints.Min; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.Size;public class testUser {@NotEmpty(message = "用户名不能为空")@Size(min = 5,max = 10,message = "用户名的长度为{min}-{max}之间") // 会将{min}替换为前面设置的min值private String username;@Min(value = 0,message = "年龄的大小不能小于{vlaue}")@Min(value = 150,message = "年龄的大小不能大于{vlaue}")private int age;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getAge() {return age;}public void setAge(int age) {this.age = age;} }3:修改配置文件 springmvc.xml中的内容
<!--验证器--> <bean id="doaoaoValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"><property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> </bean><!--注册注解驱动--> <mvc:annotation-driven validator="doaoaoValidator"/>4:创建一个Controller
package com.doaoao.check; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.validation.ObjectError; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView;import java.util.List;@Controller public class UserController {@RequestMapping("/register.do")public ModelAndView register(@Validated testUser user, BindingResult br){ModelAndView m = new ModelAndView();List<ObjectError> allError = br.getAllErrors();// 当格式校验出错时执行 alllError不为空时if(allError != null && allError.size() > 0){FieldError nameError = br.getFieldError("name");FieldError ageError = br.getFieldError("age");// 当用户名输入出现问题if(nameError != null){m.addObject("nameError",nameError.getDefaultMessage());}// 当年龄输入出现问题if(ageError != null){m.addObject("ageError",ageError.getDefaultMessage());}m.setViewName("/register");return m;}m.addObject("name",user.getUsername());m.setViewName("/user");return m;} }5:jsp中的内容
<form action="/register.do" method="get">用户名:<input type="text" name="username">${nameError}<br>年龄:<input type="text" name="age">${ageError}<br><input type="submit" value="提交"> </form># 注:hibernate validator中常用注解
...
本笔记参考自:小猴子老师教程 http://www.monkey1024.com
转载于:https://www.cnblogs.com/Doaoao/p/10669968.html
SpringMVC_数据校验相关推荐
- c语言实现java接口_五分钟带你了解Java是如何从容而优雅地实现接口数据校验
本篇文章给大家分享平时开发中总结的一点小技巧!在工作中写过Java程序的朋友都知道,目前使用Java开发服务最主流的方式就是通过Spring MVC定义一个Controller层接口,并将接口请求或返 ...
- Maatkit工具使用lt;一gt;之mysql主从数据校验工具
mysql主从数据校验工具 mysql在5.1之前,其replication都是采用的STATEMENT模式,对表的数据是否一致要求并不严格,所以对数据一致性要求比较严格的应用,定期检查数 ...
- Go 语言编程 — validator 数据校验工具
目录 文章目录 目录 Validator Quick start 约束类型 特殊约束 格式约束 数据结构类型约束 范围约束 字符串约束 唯一性约束 跨字段约束 自定义约束 错误处理 中文错误信息 参考 ...
- WPF使用IDataErrorInfo进行数据校验
这篇博客将介绍如何使用IDataErrorInfo进行数据校验.下面直接看例子.一个Customer类,两个属性(FirstName, Age) class Customer {public stri ...
- (转)Silverlight数据校验之INotifyDataErrorInfo
原文地址:http://www.cnblogs.com/PerfectSoft/archive/2012/03/01/2375007.html 在Silverlight中,数据实体类的有效性校验有多种 ...
- C#之windows桌面软件第七课:(下集)串口工具实现数据校验、用灯反应设备状态
C#之windows桌面软件第七课:(下集)串口工具实现数据校验.用灯反应设备状态 using System; using System.Collections.Generic; using Syst ...
- C#之windows桌面软件第六课:(上集)串口工具实现数据校验、用灯反应设备状态
C#之windows桌面软件第六课:(上集)串口工具实现数据校验.用灯反应设备状态 using System; using System.Collections.Generic; using Syst ...
- SilverlightMVVM模式中的数据校验
silverlight的数据校验大体分成3种类型: 数据是非必填的但是需要满足相应数据格式的 数据是必填的且可能需要进行数据格式校验的 其他(如数据的联动校验) 以下的数据校验方式针对第二种: 在相应 ...
- Java生成CRC16数据校验码
CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数 ...
最新文章
- 批处理修改远程桌面端口,并修改相应的防火墙配置
- google svn 服务器申请 使用
- WIN7 UAC/结构体的Equals方法/C# 开发wince程序,窗口上总留有一块空白区域/静态构造函数...
- tvpvar模型的建模步骤_框架箱涵建筑信息建模
- oracle %date 0 10%,“date:~0,10%“是什么意思?
- 【Java基础篇】你真的懂switch语句吗?
- 数字图像处理--图像ROI
- 京东到家发布618消费预测报告:原来这个时间点大多人在摸鱼?
- 30个极简python代码(demo)
- BlackBerry模拟器中文转换
- ssr 端口已被占用_解决 SSR for Windows 客户端烦人的 1080 端口已被占用
- 【数据库】三级模式两级映射详解
- c语言 数组 常数,在c中创建一个常数数组
- Opencv中,imag=cv2.cvtColor(imag,cv2.COLOR_BGR2GRAY) 报错:error:!_src.empty() in function ‘cv::cvtColor‘
- 阿里视频云web播放器常见问题汇总
- Golang pprof简介
- 无线通讯 cmt2150A 简介 1527协议
- 数字逻辑与数字系统设计——初识数字逻辑
- 弥漫的烟圈-Abaqus涡环仿真与空气大炮
- SQL Server的彻底卸载与再次安装
热门文章
- python集合中的元素是否可以重复_python中集合中的元素是否可以重复
- 人均奖金300万,2021年“科学探索奖”名单揭晓:高会军周昆上榜,女性获奖人8位创纪录...
- 免费试用人数太多,微软Windows 365云电脑服务器炸了,官方紧急暂停
- 英伟达对ARM、Linux开放光线追踪,SDK已就位,网友:switch也能跑光追的节奏?...
- 世界首个2nm制程芯片公布!这次IBM跑在了台积电三星英特尔前面
- 腾讯服务器“上天”、大疆云台会飞、淘宝被掰弯了……这是昨天各大科技公司的最新产品...
- 何恺明最新一作论文:无监督胜有监督,迁移学习无压力,刷新7项检测分割任务...
- PHP str_word_count
- bcftools合并vcf文件
- 准确率99.9%!如何用深度学习最快找出放倒的那张X光胸片(代码+数据)