问题描述
@Data
@NoArgsConstructor
public final class PersonRequest {
@NotNull
@JsonProperty("nameList")
private List<Person> nameList;
}
和人POJO,
@Data
public class Sensor {
@NotNull
@JsonProperty("id")
private int id;
@NotNull
@JsonProperty("name")
@Min(1)
private String name;
}
我正在发送JSON请求,并在控制器中添加了@Valid
。我正在发送如下请求,
{
"nameList": [
{
"id": 1,"name": "John"
},{
"id": 2,"name": "Alex"
}
]
}
当我发送的请求没有经过id
和name
验证时。我也尝试使用@Valid private List<Person> nameList;
,但没有运气。我使用Spring Boot 2.3.2。
已更新:
当我再添加一个属性时,当我在请求中传递日期时,这也表示请求不正确。
@NotNull
@JsonProperty("startTime")
@DateTimeFormat(pattern = "yyyy-MM-dd'T'hh:mm:ss",iso =
DateTimeFormat.ISO.DATE_TIME)
@Valid
private LocalDateTime startTime;
解决方法
控制器中的dispatchGroup.leave()
批注触发@Valid
对象的验证,该对象作为请求主体传递。要同时验证PersonRequest
中包含的Person
对象,您还需要用PersonRequest
对该字段进行注释。
@Valid