java—如何将SpringRequestBody中的参数定义为NOTNULL?

3pvhb19x  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(315)

我希望能够在spring中将某些变量定义为notnull @RequestBody . 这样,spring的控制器将拒绝任何主体没有我定义为关键变量的请求。我尝试了下面的代码,但它不起作用:
控制器:

@PutMapping("/")
ResponseEntity updateOptions(
   @RequestBody RequestDto requestDto
);

这个 RequestDto ,我希望始终填充第一个参数:

import javax.validation.constraints.NotNull;

public class RequestDto {
   @NotNull
   String id;

   String message;
}
xqkwcwgp

xqkwcwgp1#

你需要添加 @Valid 注解。

@PutMapping("/")
ResponseEntity updateOptions(
   @Valid @RequestBody RequestDto requestDto
);

如果您正在使用 Spring Boot 2.3 更高的是,我们还需要添加“spring boot starter validation”依赖项:

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

有关更详细的示例,您可以查看文章“SpringBoot中的验证”。

相关问题