本文最后更新于66 天前,其中的信息可能已经过时,如有错误请发送邮件到z18096561915@outlook.com
- 导入坐标
<!-- validation 依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
- 参数上添加@Pattern注解
public Result register(@Pattern(regexp = "^\\S{2,16}$") String username, @Pattern(regexp = "^\\S{3,16}$")String password) {
//查询用户名是否已存在
User user = userService.findUserByName(username);
if (user == null) {
// 没有注册过,可以注册
userService.register(username, password);
return Result.success();
} else {
// 已注册过,返回错误信息
return Result.error("用户名已存在");
}
}
- 在Controller类上添加@Validated注解
@RestController
@RequestMapping("/user")
@Validated
public class UserController {
....
}
- 在全局异常处理中处理参数校验失败的问题
package com.zjj.exception;
import com.zjj.pojo.Result;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* 全局异常处理
*/
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public Result handleException(Exception e) {
e.printStackTrace();
return Result.error(StringUtils.hasLength(e.getMessage())? e.getMessage() : "操作失败" );
}
}