如何在 Spring 中使用 javax.validation.constraints 验证 List 内元素的长度

jav*_*ava 3 spring spring-mvc bean-validation spring-boot javax.validation

如何在 Spring 中使用 javax.validation.constraints 验证 List 内元素的长度。现在 @Size 正在验证列表大小,而不是内部元素。

class RequestInputParamaters {

        @NotNull
        @NotEmpty
        @Size(min = 1, max=4)
        List documentIdentifier_value

    }
Run Code Online (Sandbox Code Playgroud)

cri*_*zis 10

尝试:

List<@NotNull @NotEmpty @Size(min = 1, max=4) String> documentIdentifier_value;
Run Code Online (Sandbox Code Playgroud)

如果使用hibernate-validator,您将需要版本 6+。

旧版解决方案:

@Valid List<StringWrapper> documentIdentifier_value;
Run Code Online (Sandbox Code Playgroud)

其中StringWrapper定义为:

public class StringWrapper {
    @NotNull @NotEmpty @Size(min = 1, max=4)
    private String wrapped;
    ...
}
Run Code Online (Sandbox Code Playgroud)