使用vaild对SpringBoot项目后端数据校验

1.引入jar包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

2.在对应实体类上添加注解做限制

/**
	 * 用户名
	 */
	@NotBlank(message="用户名不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String username;

	@TableField(exist=false)
	private String oldUsername;

	/**
	 * 密码
	 */
	@NotBlank(message="密码不能为空", groups = AddGroup.class)
	@Pattern(regexp ="^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,16}$",message = "密码必须为8~16个字母和数字以及特殊符号组合")
	private String password;


	/**
	 * 邮箱
	 */
	@NotBlank(message="邮箱不能为空", groups = {AddGroup.class, UpdateGroup.class})
	@Email(message="邮箱格式不正确", groups = {AddGroup.class, UpdateGroup.class})
	private String email;

	/**
	 * 手机号
	 */
	@Length(max = 11, min = 11, message = "手机号的长度必须是11位")
	@Pattern(regexp = "^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,8,9]))[0-9]{8}$", message="手机号格式不正确")
	private String mobile;

3.对应的控制层方法中使用@Valid和@BindingResult注解 

     @SysLog("保存用户")
	@PostMapping("/save")
	@RequiresPermissions("sys:user:save")
	public RetMessage save(@RequestBody @Valid SysUserEntity user, BindingResult bindingResult){
//		校验输入信息是否合法
		if (bindingResult.hasErrors()) {
			String error = bindingResult.getFieldError().getDefaultMessage();
			return RetMessage.error(error);
		}

 

posted @ 2020-11-29 11:50  江遇晚风  阅读(250)  评论(0)    收藏  举报