java - spring validtion - 在第一次验证失败时对字段进行其他验证

时间:2016-04-03 07:29:34

标签: java validation spring-mvc

我正在开发一个java spring mvc应用程序。我有一个模型,我在一个字段顶部设置了两个验证注释。这是一个代码示例:

public class MyModel{

   @NotBlank(message = "This field can not be blank")
   @NationalCode(message = "Invalid national code")
   private String name;

   ....

}

当我将name留空并提交表单时,错误验证数组有两个成员:

name => This field can not be blank
name => Invalid national code

但是,我不想要第二行。事实上,我想当一个字段的第一次验证失败时,该字段上的所有其他验证都会停止执行。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您在这里缺少的是Bean Validation specification提供的分组功能。您需要定义逻辑组,以便仅显示属于给定组的注释生成的任何错误消息。有关详细信息,请参阅section 4.4.2. Group sequence

简而言之,定义您自己的标记界面,例如NotBlankGroup,并将此界面类添加到@NotBlank注释中,

@NotBlank(message = "This field can not be blank", groups = NotBlankGroup.class)

这样,当@NotBlank字段值为空时,您才会在name中收到消息。

稍后,如果您希望添加@NationalCode或其他自定义或预定义注释,您可以轻松地将NotBlankGroup添加到groups的其他注释中,以便将它们全部评估为一个组。