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

问题描述 投票:0回答:1

对于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之间。

java hibernate-validator
1个回答
1
投票

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

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

对于值,您可以validatedValue属性。

© www.soinside.com 2019 - 2024. All rights reserved.