Spring 对象 Bean 验证的引导列表

Spring Boot List of Object Bean Validation

我有一颗豆子,

@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"
        }
    ]
}

当我在 idname 未验证的情况下发送请求时。我也尝试使用 @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;

控制器中的 @Valid 注释触发 PersonRequest 对象的验证,作为请求正文传递。要同时验证 PersonRequest 中包含的 Person 对象,您还需要用 @Valid 注释该字段。

@Data
@NoArgsConstructor
public final class PersonRequest {

    @NotNull
    @JsonProperty("nameList")
    @Valid
    private List<Person> nameList;
}