【发布时间】:2021-05-09 04:49:57
【问题描述】:
我试图在 Spring Boot 中验证请求正文,但它不起作用。目前我使用的是 Spring Boot 2.4.4 版本。这就是我所做的。
我添加了这个依赖spring-boot-starter-validation
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
具有导入验证功能的控制器
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;
@RestController
@RequestMapping("api/administration")
@Validated
public class AdminController {
@PostMapping("/create-organization")
@PreAuthorize("hasAuthority('all:write')")
public ResponseEntity createNewOrganization(
@Valid @RequestBody OrganizationDto organization) {
Organization response = adminService.createNewOrganization(organization);
HttpHeaders headers = new HttpHeaders();
headers.add("Location", "/api/organization/" + response.getId().toString());
return new ResponseEntity(headers, HttpStatus.CREATED);
}
}
组织Dto
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Builder
@ToString
public class OrganizationDto {
@NotBlank
@NotEmpty
private String name;
@NotBlank
private String email;
}
我遇到的问题是当我从 Postman 发送以下正文时没有发生错误。
{
"name": "",
"email": ""
}
【问题讨论】:
-
尝试在OrganizationDto类上方添加@Validated
标签: java spring spring-boot validation