如何在验证器的消息中编写Java变量值

时间:2019-11-02 08:26:01

标签: java hibernate-validator

对于OTP长度,我使用的是6,我是从变量中获取的

static final int OTP_LENGTH = 6;

@Size(min = OTP_LENGTH, max = OTP_LENGTH, message = "OTP Length should be {OTP_LENGTH} !!")
private String otp;

如果大小不是OTP_LENGTH,我将收到错误消息。

"fieldErrors": [
    {
      "field": "password",
      "message": "Not a Base64 string !!"
    },
    {
      "field": "otp",
      "message": "OTP Length should be {OTP_LENGTH} !!"
    }
  ]

我也尝试过

@Size(min = OTP_LENGTH, max = OTP_LENGTH, message = "OTP Length should be ${OTP_LENGTH} !!")
private String otp;

但是,未设置OTP_LENGTH 6。

期望:-“ OTP长度应为6 !!”

而且,还有其他任何只需要1个长度的验证器。

@ Size,@ Length可以取最大值,@ Size(max = OTP_LENGTH),但是最小值再次为0。如果我不覆盖消息,它将显示长度应在0到6之间。

1 个答案:

答案 0 :(得分:2)

您必须使用@Size注释中的minmax字段,例如:

@Size(min = OTP_LENGTH, max = OTP_LENGTH, message = "OTP Length must be between {min} and {max}")
private String otp;

要获得价值,您可以validatedValue属性。