SpringBoot 参数验证实验报告
·
一、实验目的
实现后端接口参数自动校验,替代手动 if/else 判断,解决代码冗余、维护困难问题,实现统一异常提示与日志记录。
二、实验环境
- 框架:若依(Ruoyi)SpringBoot 后端
- 前端:Vue 管理页面
- 模块:自定义学生信息管理模块(MyStudent)
三、实现步骤
1. 给实体类 MyStudent 添加校验注解
在字段上加入 JSR-303 校验注解,限制规则:
- 姓名:非空,长度 ≤10
- 性别:非空
- 年龄:1~120
- 手机号:符合 11 位手机号格式
关键代码:
java
运行
@NotBlank(message = "学生姓名不能为空")
@Size(max = 10, message = "学生姓名长度不能超过10个字符")
private String name;
@NotBlank(message = "性别不能为空")
private String sex;
@Min(value = 1, message = "年龄必须大于0")
@Max(value = 120, message = "年龄不能超过120岁")
private Long age;
@Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
private String phone;
2. Controller 开启校验
在新增、修改接口的参数前添加 @Validated,触发自动校验:
java
运行
@PostMapping
public AjaxResult add(@Validated @RequestBody MyStudent myStudent)
@PutMapping
public AjaxResult edit(@Validated @RequestBody MyStudent myStudent)
3. 全局异常处理(若依自带)
使用 @RestControllerAdvice 统一捕获参数校验异常:
java
运行
@ExceptionHandler(MethodArgumentNotValidException.class)
public AjaxResult validExceptionHandler(MethodArgumentNotValidException e) {
String msg = e.getBindingResult().getFieldError().getDefaultMessage();
return AjaxResult.error(msg);
}
四、实验效果
1. 前端效果
输入不合法数据时,页面弹出提示:
- 学生姓名长度不能超过 10 个字符
- 年龄不能超过 120 岁
- 手机号格式不正确
2. 后端控制台日志
控制台输出异常信息:
plaintext
ERROR c.r.f.w.e.GlobalExceptionHandler - Validation failed for argument
Field error in object 'myStudent' on field 'name'
default message [学生姓名长度不能超过10个字符]
实验代码截图






更多推荐


所有评论(0)