@Valid オブジェクトのネストされたリスト オブジェクト検証の無効なソリューション

コントローラーは次のとおりです。

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

形式は次のとおりです。

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;
}

問題:
コントローラーが呼び出すと、外側の updateTime のみがデータ更新時間が必要であることを要求し、フライト番号、フライト日付などが空でチェックされません。

解決策:
AForm を変更し、リスト オブジェクトに注釈 @Valid を追加して正常に検証します。

public class AForm {
    
    

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

 	@Valid
    private List<ASubForm> updateList;
}

おすすめ

転載: blog.csdn.net/Tanganling/article/details/128792001