Spring Boot学习入门之表单验证
发布时间 - 2026-01-11 03:05:21 点击率:次前言

所谓表单验证,即校验用户提交的数据的合理性的,比如是否为空了,密码长度是否大于6位,是否是纯数字的,等等。spring boot是如何帮我们实现表单验证的呢?下面话不多说了,来一起看看详细的介绍吧。
假设现在我们存在这么一个注册界面:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>hello spring boot</title> </head> <body> <form action="/doRegister" method="post"> <p>姓名:<input type="text" name="username"/> </p> <p>密码:<input type="text" name="password"/> </p> <p><button>提交</button></p> </form> </body> </html>
需要验证提交上去的用户名,密码。是否为空,以及其他的一些问题。我们需要怎么做呢?
首先我们需要一个实体类:User类,存储表单提交上来的数据:
public class User {
private int id;
@NotEmpty(message="用户名不能为空")
private String username;
@NotEmpty(message="密码不能为空")
@Length(min=6, message="密码长度不能少于6位")
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
使用@NotEmpty,@Length等注解,添加message的值,指示如果不符合的话,会得到什么message。
接下来编写Controller类:使用@Valid注解验证数据,并且使用BindingResult获取结果。
@Controller
public class FormController {
@RequestMapping(value="/register", method=RequestMethod.GET)
public String register() {
return "register";
}
@RequestMapping(value = "/doRegister", method = RequestMethod.POST)
public @ResponseBody User doRegister(@Valid User user, BindingResult result, Model model) {
if (result.hasErrors()) {
List<ObjectError> list = result.getAllErrors();
for (ObjectError error : list) {
System.out.println(error.getDefaultMessage());
}
return null;
}
System.out.println("注册..");
return user;
}
}
这样就完成了一个简单的表单验证。
而除了@NotEmpty,@Length之外,还有很多其他的注解:
- @null 验证对象是否为空
- @notnull 验证对象是否为非空
- @asserttrue 验证 boolean 对象是否为 true
- @assertfalse
- 验证 boolean 对象是否为 false
- @min 验证 number 和 string 对象是否大等于指定的值
- @max 验证 number 和 string 对象是否小等于指定的值
- @decimalmin 验证 number 和 string 对象是否大等于指定的值,小数存在精度
- @decimalmax 验证 number 和 string 对象是否小等于指定的值,小数存在精度
- @size 验证对象(array,collection,map,string)长度是否在给定的范围之内
- @digits 验证 number 和 string 的构成是否合法
- @past 验证 date 和 calendar 对象是否在当前时间之前
- @future 验证 date 和 calendar 对象是否在当前时间之后
- @pattern 验证 string 对象是否符合正则表达式的规则
- @Email 验证邮箱
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# spring
# boot
# 表单验证
# 表单
# 处理表单
# springmvc后台基于@ModelAttribute获取表单提交的数据
# layui 图片上传+表单提交+ Spring MVC的实例
# SpringCloud Finchley Gateway 缓存请求Body和Form表单的实现
# Spring Cloud使用Feign实现Form表单提交的示例
# Spring Boot RestTemplate提交表单数据的三种方法
# SpringMVC实现表单验证功能详解
# SpringMVC处理Form表单实例
# Spring MVC接受表单自动封装特性实例解析
# 为空
# 其他的
# 说了
# 不多
# 怎么做
# 不符合
# 这篇文章
# 谢谢大家
# 还有很多
# 范围之内
# 是否符合
# 空了
# 是否合法
# 完成了
# 有疑问
# 正则表达式
# 实体类
# input
# User
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
佛山企业网站制作公司有哪些,沟通100网上服务官网?
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理
如何在不使用负向后查找的情况下匹配特定条件前的换行符
Android Socket接口实现即时通讯实例代码
如何解决hover在ie6中的兼容性问题
如何在IIS中配置站点IP、端口及主机头?
b2c电商网站制作流程,b2c水平综合的电商平台?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
Laravel如何为API编写文档_Laravel API文档生成与维护方法
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
如何确保FTP站点访问权限与数据传输安全?
javascript中对象的定义、使用以及对象和原型链操作小结
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
如何用IIS7快速搭建并优化网站站点?
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
如何自定义建站之星网站的导航菜单样式?
如何自定义建站之星模板颜色并下载新样式?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
如何在IIS中新建站点并配置端口与物理路径?
重庆市网站制作公司,重庆招聘网站哪个好?
,南京靠谱的征婚网站?
Laravel如何处理表单验证?(Requests代码示例)
简历没回改:利用AI润色让你的文字更专业
如何在VPS电脑上快速搭建网站?
Python文本处理实践_日志清洗解析【指导】
如何实现javascript表单验证_正则表达式有哪些实用技巧
如何快速上传自定义模板至建站之星?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
Internet Explorer官网直接进入 IE浏览器在线体验版网址
详解Android中Activity的四大启动模式实验简述
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
韩国服务器如何优化跨境访问实现高效连接?
Laravel怎么调用外部API_Laravel Http Client客户端使用
如何快速搭建自助建站会员专属系统?
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
香港服务器选型指南:免备案配置与高效建站方案解析
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】

