使用Optional对前端传来的实体类进行校验
时间: 2024-02-21 19:56:53 浏览: 20
可以使用Optional对前端传来的实体类进行校验,具体步骤如下:
1. 首先在实体类中添加校验注解,例如@NotNull、@NotBlank、@Size等等,根据具体需求选择合适的注解。
2. 在Controller中接收前端传来的实体类时,使用Optional进行包装。
3. 使用Optional的ifPresent()方法对实体类进行校验,如果校验不通过则抛出异常或返回错误信息。
示例代码如下:
```java
@PostMapping("/users")
public ResponseEntity<?> createUser(@RequestBody Optional<User> userOptional) {
return userOptional.map(user -> {
// 校验用户名和密码是否为空
if (StringUtils.isBlank(user.getUsername()) || StringUtils.isBlank(user.getPassword())) {
throw new IllegalArgumentException("用户名和密码不能为空!");
}
// 校验通过则进行保存操作
userRepository.save(user);
return ResponseEntity.ok(user);
}).orElseThrow(() -> new IllegalArgumentException("用户信息不能为空!"));
}
```
在上述代码中,使用Optional包装了前端传来的User实体类,然后使用ifPresent()方法对用户名和密码进行校验,如果校验不通过则抛出异常,否则进行保存操作。如果Optional中没有数据,则直接返回错误信息。