步骤一:引入四个jar包

步骤二:注册类型转换器

 <context:component-scan base-package="cn.happy.controller"></context:component-scan><!-- 配置验证器 --><bean id="myvalidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"><property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property></bean> <mvc:annotation-driven validator="myvalidator"/>

步骤三:为实体类进行注解约束

package cn.happy.entity;import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;import org.hibernate.validator.constraints.NotEmpty;
/*** @Min最小值* @Max最大值* @NotEmpty 不允许为空* @Pattern 使用正则校验* @Size 长度*/
public class UserInfo {//必须是0到100之间@Min(value=0,message="成绩最小值为{value}")@Max(value=100,message="成绩最大值为{value}")@NotEmpty(message="成绩不允许为空")  private Integer score;//手机号码必须不能为空,必须是以1 开头 第二位3,4,5,6,7,8,9   最后9位随意@NotEmpty(message="手机号码不允许为空")  @Pattern(regexp="^1[3,4,5,6,7,8,9]\\d{9}$",message="手机号码不正确")private String phone;//不能为空//必须是6个字符以上@NotEmpty(message="用户名不能为空") @Size(min=6,message="名称至少6个字符")private String name;public Integer getScore() {return score;}public void setScore(Integer score) {this.score = score;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

步骤四:编写Handler控制器

package cn.happy.controller;import javax.validation.Valid;import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import cn.happy.entity.UserInfo;@Controller
public class FirstController {@RequestMapping("/first.do")public ModelAndView doFirst(@Valid UserInfo info,BindingResult br){ModelAndView mv=new ModelAndView();mv.setViewName("/WELCOME.jsp");//记录到底是哪个字段验证失败了//有一个可以侦测到验证错误总数的方法int errorCount = br.getErrorCount();if (errorCount>0) {//证明模型验证失败FieldError score = br.getFieldError("score");FieldError name = br.getFieldError("name");FieldError phone = br.getFieldError("phone");if (score!=null) {mv.addObject("scoremsg",score.getDefaultMessage());}if (name!=null) {mv.addObject("namemsg",name.getDefaultMessage());}if (phone!=null) {mv.addObject("phonemsg",phone.getDefaultMessage());}mv.setViewName("/index.jsp");}//高中  英文版的吻别return mv ;}
}

转载于:https://www.cnblogs.com/baixingqiang/p/6260181.html

StringMVC 中如何做数据校验相关推荐

  1. 关于uni-app中uni-forms表单验证时“多级结构对象数据”如何做数据校验的解决方案

    - 前言 这几天在做uni-app表单验证时遇到了一个问题,按官方文档给出的方法,当需要数据校验时,只需要 1.为uni-forms中的"modelValue"数据设置" ...

  2. spring中的hibernate-validate数据校验

    spring中的hibernate-validate数据校验 两种方式 两种方式 第一种,bean级别校验 1.直接在实体类使用注解校验 首先在项目里引入jar包 <!--hibernate v ...

  3. 在基于图像的深度学习中如何做数据的自动标注以及自动标注的等级介绍

    作者:Tobias Schaffrath Rosario 编译:ronghuaiyang 原文:在基于图像的深度学习中如何做数据的自动标注以及自动标注的等级介绍_ronghuaiyang的博客-CSD ...

  4. 如何优雅的做数据校验-Hibernate Validator详细使用说明

    文章目录 Hibernate Validator的使用 依赖 bean约束声明和验证,Validator 方法约束声明和验证,ExecutableValidator 约束注解 空与非空检查 Boole ...

  5. C# 利用特性做数据校验

    1.首先新建一个抽象类,规范所有的自定义属性 public abstract class CustormAttribute:Attribute{public abstract bool Validat ...

  6. java 护照校验,Java应用中的数据校验

    翻译:叩丁狼教育吴嘉俊 [译者注:这篇文章是开源项目CUBA Platform的作者,在这篇文章中,作者阐述了CUBA平台中关于数据校验的设计思想和使用方式,可以作为大家在设计数据校验方面一个比较好的 ...

  7. SilverlightMVVM模式中的数据校验

    silverlight的数据校验大体分成3种类型: 数据是非必填的但是需要满足相应数据格式的 数据是必填的且可能需要进行数据格式校验的 其他(如数据的联动校验) 以下的数据校验方式针对第二种: 在相应 ...

  8. java 后端校验_如何实现Java后端数据校验?看这篇就足够!

    前言 每次我们在搭建一个开源项目的首要任务包括:项目的统一异常处理.统一结果封装以及做项目的数据校验,在前后端分离的情况下,不仅前端需要做数据校验,同样后端也要实现,前端主要使用一些类似与jQuery ...

  9. SpringBoot后端数据校验实战

    本文从本人博客搬运,原文格式更加美观,可以移步原文阅读:SpringBoot后端数据校验实战 一般我们会在Controller的接口中对前端传递的参数做数据校验,这是一个后端开发人员的基本素养 在Sp ...

最新文章

  1. AI生成中国山水画!普林斯顿姑娘本科毕业作品,骗过70%中国人
  2. 冒泡排序和鸡尾酒排序(改进的冒泡排序)
  3. 头发一周洗几次才适宜? - 生活至上,美容至尚!
  4. Composer -- PHP依赖管理的用法
  5. 广元南山隧道南河互通立交图_广元城区一隧道工程竣工时间已定,今后出行更加方便了!...
  6. Linux 使用 jstat 命令查看 jvm 的 GC 情况
  7. 重启java_让Java程序自动重启的实现方法(推荐)
  8. Two-stage rotation animation is deprecate警告
  9. 三菱fx2n64mr说明书_三菱FX2N-64MR-D编程手册(FX系列可编程控制器) - 三菱
  10. 预测房价实验-房价数据集
  11. 增删改查以及冒泡算法的综合案例
  12. 【第54题】输入、输出系列2-批量重命名,批量移动文件,批量删除tmp文件
  13. 幻立方解法之4阶,5阶,7阶
  14. 宏基微型计算机机箱怎么打开,机箱也智能 自己动手打造自动温控机箱
  15. Android 墨水屏黑白红色阶算法和抖动算法,拿过去直接用
  16. 修改系统文件更改权限
  17. 如何使特定的数据高亮显示?
  18. FX3U基本指令学习
  19. 知情人士:比特大陆创始人吴忌寒离开核心纯属谣言
  20. 浅谈机器人的定位技术 激光SLAM VS 视觉SLAM

热门文章

  1. 关于DataFormWebPart中CreatedModifiedInfo信息的分开使用
  2. shell脚本 -d 是目录文件,那么-e,-f分别是什么?还有! -e这又是什么意思呢?
  3. lingo解题报告内容解释
  4. 打开wmware没反应_没呼吸没脉搏,溺水女孩危在旦夕!预产期只差9天的她挺着大肚子出手相助...
  5. vs python生成exe文件_使用VScode编写python程序并打包成.exe文件-文件夹变成exe
  6. python api是什么_Python/C API
  7. linux 提供多用户telnet,linux系统telnet命令怎么用
  8. 抖音数据统计_26万条抖音数据背后的推荐逻辑以及严重失调的男女比例
  9. java 数组的get set_java.lang.reflect.Array.setBoolean()方法
  10. 计算机的iscsi配置,PC端的iSCSI参数设置方法