Springboot——参数校验
2023/5/27 18:22:09
本文主要是介绍Springboot——参数校验,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
springboot参数校验注解
在controller层需要对前端传来的参数进行校验
校验简单数据类型
使用springboot自带的validation工具可以从后端对前端传来的数据进行校验
使用方法:
- 创建项目时引入I/O场景下的validation起步依赖
- 使用maven创建项目时,引入起步依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
- 添加注解
@Validated
控制器开启参数校验功能 - 在参数前添加校验标准的注解,判断参数
注解 | 作用 |
---|---|
@NotNull |
判断包装类是否为null |
@NotBlank |
判断字符串是否为null或者是空串(去掉首位空格) |
@NotEmpety |
判断集合是否为空 |
@Length |
判断字符的长度(最大或最小) |
@Min |
判断数值最小值 |
@Max |
判断数值最大值 |
@Email |
判断邮箱是否合法 |
例如:
@RequestMapping("/t2") @ResponseBody public String t2(@NotBlank @Length(min = 1,max = 5) String username, @NotNull @Min(0) @Max(50) Integer age, @NotEmpty @RequestParam List<String> address, @NotBlank @Email String email){ System.out.println(username); System.out.println(age); System.out.println(address); System.out.println(email); return "请求成功"; }
异常处理
当抛出ConstraintViolationException
异常时,可以使用SpringMVC的异常处理器处理异常,也可以使用springboot的异常处理器。
springboot使用BasicErrorController来进行异常处理,当出现异常时,会跳转到
resources/templates/error.html
,只需要对error.html进行编辑就可以处理,当然后台还是会报异常的,如果需要详细的处理异常,那么就需要采用SpringMVC的异常处理器来处理了
校验对象类型参数
校验对象类型参数,实际是判断传来对象的属性
使用方法:
- 在对象属性前添加校验标准
- 在对象参数前添加注解
@Validated
,并将异常信息封装到BindingResult对象中
例如:
public class User { @NotBlank(message = "用户名不能为空") private String username; @NotNull(message = "id不能为空") private int id; @Override public String toString() { return "User{" + "username='" + username + '\'' + ", id=" + id + '}'; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getId() { return id; } public void setId(int id) { this.id = id; } }
@RequestMapping("/t3") @ResponseBody public String t3(@Validated User user, BindingResult result){ //判断是否有异常 if (result.hasErrors()){ List<ObjectError> list = result.getAllErrors(); for (ObjectError err:list ) { FieldError fieldError = (FieldError) err; System.out.println(fieldError.getDefaultMessage()); } throw new RuntimeException("参数验证"); } System.out.println(user); return "请求成功"; }
注意:对对象参数进行校验时不需要给controller添加@Validated
注解,只需要给对象参数添加注解就可以,校验标准应该添加在对象的属性中
这篇关于Springboot——参数校验的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?