SpringMVC后台数据校验

第①步:引入依赖

1<!--数据校验--> 2 <dependency> 3 <groupId>org.hibernate</groupId> 4 <artifactId>hibernate-validator</artifactId> 5 <version>4.3.1.Final</version> 6 </dependency> 7 8 <!--validation api--> 9 <dependency> 10 <groupId>javax.validation</groupId> 11 <artifactId>validation-api</artifactId> 12 <version>1.0.0.GA</version> 13 </dependency>

第②步:配置Spring.xml

1<!--:参数方法名解析器--> 2 <bean id="methodNameResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 3 <property name="prefix" value="/"/> 4 <property name="suffix" value=".jsp"/> 5 </bean> 6 <!--扫描包下所有的被标注的类--> 7 <context:component-scan base-package="cn.happy.day15Validator"/> 8 9 <!--配置验证器--> 10 <bean id="myvalidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> 11 <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/> 12 </bean> 13 14 <!--绑定验证器--> 15 <mvc:annotation-driven validator="myvalidator"/>

第③步:实体类注解

1package cn.happy.day15Validator; 2 3import org.hibernate.validator.constraints.NotEmpty; 4import javax.validation.constraints.Max; 5import javax.validation.constraints.Min; 6import javax.validation.constraints.Pattern; 7import javax.validation.constraints.Size; 8 9 10/** 11 * Created by Administrator on 2018/3/31. 12 */ 13public class UserInfo { 14 15 /** 16 * Min:设置最小值 17 * Max:设置最大值 18 * Message:打印信息 19 */ 20 //指定年龄在18-120之间 21 @Min(value = 18,message = "年龄不能小于18岁") 22 @Max(value = 120,message = "年龄不能大于100岁") 23 private Integer age; 24 25 /** 26 * 三种验证方式 27 * @NotEmpty 用于集合 28 * @NotNull 用于基本类型 29 * @NotBlank 用于引用类型 30 * @Size 设置大小 31 */ 32 //非空验证 33 @NotEmpty(message = "用户名不能为空") 34 @Size(max = 20,min = 6,message = "用户名不能大于20个字符或小于6个字符") 35 private String name; 36 37 /** 38 * @Pattern rehexp匹配正则 39 */ 40 @NotEmpty(message = "邮箱不能为空") 41 @Pattern(regexp = "^\\w+@\\w+/.\\w+$",message = "邮箱格式错误") 42 private String email; 43 44 @Pattern(regexp = "^1[35789]\\d{9}$",message = "手机号格式错误") 45 private String phone; 46 47 public String getPhone() { 48 return phone; 49 } 50 51 public void setPhone(String phone) { 52 this.phone = phone; 53 } 54 55 public String getEmail() { 56 return email; 57 } 58 59 public void setEmail(String email) { 60 this.email = email; 61 } 62 63 64 public Integer getAge() { 65 return age; 66 } 67 68 public void setAge(Integer age) { 69 this.age = age; 70 } 71 72 public String getName() { 73 return name; 74 } 75 76 public void setName(String name) { 77 this.name = name; 78 } 79 80}

第④步:配置处理器

1import org.springframework.stereotype.Controller; 2import org.springframework.ui.Model; 3import org.springframework.validation.BindingResult; 4import org.springframework.validation.FieldError; 5import org.springframework.web.bind.annotation.RequestMapping; 6 7import javax.validation.Valid; 8import java.text.SimpleDateFormat; 9import java.util.Date; 10 11/** 12 * Created by Administrator on 2018/3/30. 13 */ 14@Controller 15public class FirstController { 16 17 @RequestMapping("/first") 18 /** 19 * @Valid 验证对象 20 * BindingResult 绑定结果 21 * Model 视图对象 22 */ 23 public String doFirst(@Valid UserInfo userInfo, BindingResult br, Model mv) throws Exception { 24 //判断br中的错误数 25 if(br.getErrorCount()>0){ //证明至少有一个数据错误 26 //获取信息 27 FieldError name = br.getFieldError("name"); 28 FieldError age = br.getFieldError("age"); 29 FieldError phone = br.getFieldError("phone"); 30 FieldError email = br.getFieldError("email"); 31 32 //获取错误信息 33 if(name!=null){ 34 String namemsg = name.getDefaultMessage(); 35 //把错误信息返回到页面 36 mv.addAttribute("namemsg",namemsg); 37 } 38 if(age!=null){ 39 String agemsg = age.getDefaultMessage(); 40 mv.addAttribute("agemsg",agemsg); 41 } 42 if(phone!=null){ 43 String phonemsg = phone.getDefaultMessage(); 44 mv.addAttribute("phonemsg",phonemsg); 45 } 46 if(email!=null){ 47 String emailmsg = email.getDefaultMessage(); 48 mv.addAttribute("emailmsg",emailmsg); 49 } 50 //返回请求View 51 return "Validator"; 52 } 53 return "doSecond"; 54 } 55 56}

  配置完成!

阿里云年末钜惠,27款产品低至2折,有需要的可以看一下https://m.aliyun.com/act/team1212?params=N.rLGEYu0Jk2

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )