如何在java约束上添加其他信息

时间:2016-08-03 10:30:22

标签: java spring hibernate-validator

使用java验证约束,即

@NotNull, @Size, etc

您可以添加api可以返回给客户端的消息字段。反正有没有添加其他字段,如自定义代码?

我遇到的问题是每个可能的错误都需要它自己的消息和代码返回给客户端。 (通过代码我的意思是响应体中的自定义,而不是http状态代码。)

{
  message: foo can not be null,
  code: 10001
}

我唯一能想到的是在每一个字段上使用自定义验证器类,这将是相当多的工作,或者有一个巨大的if / else块根据消息设置代码。

有人能想到更好的解决方案吗?

提前感谢您的任何帮助:)

1 个答案:

答案 0 :(得分:1)

您可以使用所有约束类型定义的payload()参数。

您必须为每个错误代码声明一个类类型:

public interface Error_01 {}

然后:

public class SomeValidatedClass {
    @NotNull(payload=Error_01.class)
    private String someField;
}