Spring Boot笔记八:表单验证
2024-08-25 21:20:43
所谓的表单验证,就是为了防止用户乱输入的,这个问题前端的HTML5就可以判断了,其实不需要后端来验证,这里还是讲一下后端验证
首先,我们的Person类,我们加上一些表单验证的注释,如下:
package com.vae.springboot.study.bean;
import org.springframework.stereotype.Component;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Component
public class Person {
@NotBlank(message = "名字必须输入")
private String name;
@Min(value = 32,message = "年龄必须大于32岁")
private Integer age;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
这就是一个简单的Java Bean类,我们写了几个表单验证的注解,关于注解,我大概列一下
说明 | 限制 |
---|---|
@Null | 限制只能为null |
@NotNull | 限制必须不为null |
@AssertFalse | 限制必须为false |
@AssertTrue | 限制必须为true |
@DecimalMax(value) | 限制必须为一个不大于指定值的数字 |
@DecimalMin(value) | 限制必须为一个不小于指定值的数字 |
@Digits(integer,fraction) | 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction |
@Future | 限制必须是一个将来的日期 |
@Max(value) | 限制必须为一个不大于指定值的数字 |
@Min(value) | 限制必须为一个不小于指定值的数字 |
@Past | 限制必须是一个过去的日期 |
@Pattern(value) | 限制必须符合指定的正则表达式 |
@Size(max,min) | 限制字符长度必须在min到max之间 |
@Past | 验证注解的元素值(日期类型)比当前时间早 |
@NotEmpty | 验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) |
@NotBlank | 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格 |
验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式 |
然后我们去Controller里面去写个方法:
@PostMapping("/test")
public String test(@Valid Person person, BindingResult bindingResult){
if (bindingResult.hasErrors()) {
System.out.println(bindingResult.getFieldError().getDefaultMessage());
return null;
}
person.setName(person.getName());
person.setAge(person.getAge());
return "Vae";
}
这里需要介绍的有两点
第一个是@RequestMapping 和 @GetMapping @PostMapping 区别
@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。
@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。
所以我这里使用什么都可以
第二个就是我们的方法,里面参数写了@Valid,这个就是用于验证注解是否符合要求,直接加在变量之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message的错误提示信息
现在,做好了一切准备,我们来测试一下,这里使用PostMan进行测试,如图
Idea输出展示
最新文章
- Expression Blend创建自定义按钮
- C语言strdup函数
- php 关于stripslashes 和 addslashes的使用
- Jquery+artTemplate+layPage 封装datagrid
- HDR 拍照模式的原理,实现及应用
- Android中三种onClick事件的实现与对比
- Android四大组件一----Activity
- 【对象模型】C++模版的编译链接过程——编译器真的会检查所有tocken层面的错误么?
- 视频学习_css基础学习
- PHP 数据库 ODBC
- JSP基础之 C标签中的 varStatues属性
- ABP领域层——工作单元(Unit Of work)
- Solr 教程
- oracle基本查询语句总结
- 剑指offer--面试题3
- LCT 模板及套路总结
- lambda+mutable配合move实现单函数多程序域
- [Swift]LeetCode670. 最大交换 | Maximum Swap
- numpy创建array【老鱼学numpy】
- CF1101G (Zero XOR Subset)-less
热门文章
- python3.7之12306抢票脚本实现
- thymeleaf手动映射根路径映射
- Biorhythms POJ - 1006 中国剩余定理
- 学习Android过程中遇到的问题及解决方法——电话监听
- 怎么用Verilog语言描述同步FIFO和异步FIFO
- 【XSY1537】五颜六色的幻想乡 数学 生成树计数 拉格朗日插值
- opencv图像融合(大头)
- 0-1背包 VIOJ1025
- luogu2282/bzoj1219 历史年份 (dp+hash+二分+线段树)
- poj3926 parade (单调队列+dp)