0

当我应用两个验证注释并且在某些特定情况下都检查相同的条件时,我观察到一个问题,javax 验证输出不稳定。这是代码示例:

@NotBlank(message = "Date Missing")
@ValidDate(message = "Invalid Date")
private String date;

在上面的代码ValidDate中是一个自定义注释,它检查给定日期是否有效以及不为空,并NotBlank检查空、非空。

因此,如果日期为空,则两者都返回 true,并且消息响应在 Date Missing 和 Invalid Date 之间切换

有什么方法可以停止这种切换并且只能将 NotBlank 用于 null 情况?

4

1 回答 1

2

这是因为默认情况下不保证执行 javax 验证的顺序。因此,无论首先执行什么都会引发错误。用于@GroupSequence订购

另一种方法是检查Not Blank并在自定义注释中抛出适当的错误并从属性ValidDate中删除注释。@NotBlank

于 2021-08-04T15:14:23.880 回答