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打开提示不安全【指南】