小编TMt*_*ech的帖子

Spring Boot Bean 验证未返回错误响应

我正在开发一个 Spring Boot 2 项目,并尝试向其中引入 Bean 验证。

我的 bean 正在验证,但没有返回任何错误响应。

我有一个 POJO 注释如下

@Data
public class AccountSelectBeanRequest implements Serializable {

@JsonProperty("accountNo")
@Size(max = 10,message = "maximum length is 10")
private String accountNo;

@JsonProperty("ship-to")
private String shipTo;
Run Code Online (Sandbox Code Playgroud)

}

在资源方法中,我有 @Valid 注释,如下所示

@PostMapping("/account-select")
public ResponseEntity<?> selectAccount(@Valid @RequestBody  AccountSelectBeanRequest accountRequest) {...}
Run Code Online (Sandbox Code Playgroud)

当我调用大于 10selectAccount的方法时accountNo,我收到一个 HTTP 400 Bad Request ,其中响应正文为空

但是,如果我像下面这样验证资源方法中的请求参数,它会按预期返回错误响应正文。

@PostMapping(value = "/generate-token")
public ResponseEntity<?> login(@RequestParam String username, @RequestParam @NotNull @NotEmpty String password)
Run Code Online (Sandbox Code Playgroud)

这种行为的原因可能是什么?

POM 依赖关系

<parent>
    <groupId>org.springframework.boot</groupId> …
Run Code Online (Sandbox Code Playgroud)

spring bean-validation spring-boot

5
推荐指数
1
解决办法
2762
查看次数

标签 统计

bean-validation ×1

spring ×1

spring-boot ×1