无法在Java中对数组的元素执行Bean验证
我有一个Spring Boot应用程序,需要在其中执行对象验证 必须验证的对象:无法在Java中对数组的元素执行Bean验证,java,spring,spring-boot,validation,javabeans,Java,Spring,Spring Boot,Validation,Javabeans,我有一个Spring Boot应用程序,需要在其中执行对象验证 必须验证的对象: public class MyObject { @NotNull @Size(min=5) @ApiModelProperty(value = "first name", required=true) private String firstName; //getters and setters for firstName } 现在在我的控制器中,我有两种方法-
public class MyObject {
@NotNull
@Size(min=5)
@ApiModelProperty(value = "first name", required=true)
private String firstName;
//getters and setters for firstName
}
现在在我的控制器中,我有两种方法-
public ResponseEntity<RespObject> getSingleResp(@Valid @RequestBody MyObject myObj) {
//Bean validation works I get a 400 if validation fails, only if it is valid then execution enters this method
}
public ResponseEntity<RespObject[]> getMultiResp(@Valid @RequestBody MyObject[] myObjs) {
//Bean validation does not happen here and starts execution of this method
}
public ResponseEntity getSingleResp(@Valid@RequestBody MyObject myObj){
//Bean验证有效如果验证失败,我会得到400分,只有当它有效时,执行才会进入这个方法
}
公共响应getMultiResp(@Valid@RequestBody MyObject[]myobjects){
//Bean验证不会在这里发生,而是开始执行此方法
}
我还尝试在@Valid@RequestBody
和MyObject[]myobjects
之间添加@NotEmpty
,以查看验证是否发生,但它似乎不起作用
我是否遗漏了一些愚蠢的东西,或者Bean验证对数组的单个元素不起作用?如果它不起作用,那么有解决这个问题的办法吗
我在列表中找到了一个类似的问题,但那边的解决方案似乎对我不起作用 您是否尝试将
MyObject[]
替换为List
您可以粘贴整个控制器类吗?或者检查控制器中的类级别上是否有@已验证的注释