关于spring里面对bean的@valid注解使用验证list问题

@Validated
public class TestController 


@PostMapping("/users")
    public Map<String, Object> saveUser(@RequestBody RegisterUserVO registerUserVO)
            throws NoSuchAlgorithmException {
        return userService.save(registerUserVO);
    }
    
    
    
 public class RegisterUserVO {


    @NotBlank(message = "用户名不能为空")
    @NotNull(message = "用户名不能为空")
    private String username;




    @Valid
    @NotNull
    private List<Integer> roleIdList;

    @NotBlank(message = "密码不能为空")
    @NotNull(message = "密码不能为空")
    private String password;

对list的验证无效,然后我又改了改


 @Valid
 private List<@NotNull Integer> roleIdList;
 
 @PostMapping("/users")
    public Map<String, Object> saveUser(@RequestBody @Valid RegisterUserVO registerUserVO)
            throws NoSuchAlgorithmException {
        return userService.save(registerUserVO);
    }

依旧无效,在文档里面类似是长这样

@AvailableInStore(groups={Availability.class})
public class Book {
    @NonEmpty(groups={FirstLevelCheck.class, Default.class})
    private String title;

    @Valid
    @NotNull
    private List<Author> authors;

    @Valid
    private Map<String, Review> reviewsPerSource;

    @Valid
    private Review pickedReview;

    private List<@NotBlank String> tags;

    private Map<Integer, List<@NotBlank String>> tagsByChapter;

    private List<@Valid Category> categories;

    private Map<Integer, List<@Valid Author>> authorsByChapter;

    [...]
}

不知道是哪里出了问题,导致结果出来,希望各位看看,其他基本类型的验证都是好的,就list不行。

阅读 6.3k
1 个回答

你是想要如果List集合中含有Null元素,就校验失败吗?这需要自定义Validator的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题