@Valid对象嵌套List对象校验无效的解决方案

  • Post author:
  • Post category:其他


controller如下:

public Objects flights(@RequestBody @Valid AForm aForm){
        return null;
    }

Form如下:

public class AForm {

    @NotNull(message = "数据更新时间必选")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date updateTime;

    private List<ASubForm> updateList;
}

public class ASubForm {

    @NotBlank(message = "航班号必选")
    private String FlightNumber;

    @NotBlank(message = "航班日期必选")
    private String FlightDate;

    @NotBlank(message = "离港机场必选")
    private String DepAirport;

    @NotBlank(message = "目的机场必选")
    private String ArrAirport;
}

问题:

controller调用的时候只有外层的updateTime有提示数据更新时间必填,航班号航班日期等为空都不进行校验。

解决方案:

修改AForm,在list对象上加上注解 @Valid就能正常校验了

public class AForm {

    @NotNull(message = "数据更新时间必选")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
    private Date updateTime;

 	@Valid
    private List<ASubForm> updateList;
}



版权声明:本文为Tanganling原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。