java - 如何添加有关 java 约束的附加信息

标签 java spring hibernate-validator

使用java验证约束,即

@NotNull, @Size, etc

您可以添加一个消息字段,您的 api 可以将其返回给客户端。是否可以添加其他字段,例如自定义代码?

我遇到的问题是,每个可能的错误都需要将其自己的消息和代码返回给客户端。 (我所说的代码是指响应正文中的自定义代码,而不是 http 状态代码)。

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

我唯一能想到的就是在每个字段上使用自定义 validator 类,这将需要大量工作,或者使用一个巨大的 if/else block 来根据消息设置代码。

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

提前感谢您的帮助:)

最佳答案

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

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

public interface Error_01 {}

然后:

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

关于java - 如何添加有关 java 约束的附加信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38741044/

相关文章:

java generics - 类型T中的方法evaluate(T,T)不适用于参数(Comparable, Comparable<capture#11-of ?>)

java - 使用 StAx 解析 XML 文件时出错

java - @Transactional 的自定义快捷方式注释不起作用

java - 无法构建 Spring-boot-sample-gae(在 GAE 上部署 Spring Boot)

java - 如何使用 javax.validation 将 @NotNull 约束应用于类中的所有字段?

java - 使用java和apache POI读取Excel中的数据

java - 是否可以使用空参数调用方法但参数不为空?

java - 在 Struts 2 中使用 Spring Controller 创建 REST API

java - 使用 hibernate-validator 时出现 NoClassDefFoundError

java - JSR 303 : How to Validate a Collection of annotated objects?