<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 验证框架 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
接收前端参数的实体类
package com.study.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
@Data
public class RegisterVO implements Serializable {
// NotBlank是判断字符串不能为空
// message是验证不通过时,反馈给用户的信息
@NotBlank(message = "邀请码不能为空")
private String inviteCode; // 邀请码
@NotBlank(message = "手机号不能为空")
@Pattern(regexp = "^1\\d{10}$", message = "请输入正确手机号")
private String phone; // 手机号\用户名
@NotBlank(message = "昵称不能为空")
@Pattern(regexp = "^.{2,20}$", message = "昵称是2~20个字符")
private String nickname; // 昵称
@NotBlank(message = "密码不能为空")
@Pattern(regexp = "^\\w{6,20}$", message = "密码必须是6~20个字符")
private String password; // 密码
@NotBlank(message = "确认密码不能为空")
private String confirm; // 确认密码
}
控制层
@RestController
public class UserController {
// 处理注册的方法
@PostMapping("/register")
public String register(
//RegisterVO参数前添加@Validated注解,表示启动SpringValidation验证
// 在控制器运行之前框架就会按照设置好的规则进行验证工作
@Validated RegisterVO registerVO,
// 这个参数是接收上面验证结果的对象
// 我们在代码中可以判断这个result中是否包含错误信息,以得知验证结果
BindingResult result) {
if (result.hasErrors()) {
// 进入这个if证明验证没通过,要返回错误信息
String msg = result.getFieldError().getDefaultMessage();
return msg;
}
//业务代码
return "ok";
}
}