我正在尝试进行以下验证:
我正在使用一个类进行验证。例如:
public class RegisterRequest {
@NotNull(message = "Please enter an email")
@Email(message = "Not a valid email")
@JsonProperty("email")
public String email;
@NotNull(message = "Please enter a name")
@JsonProperty("name")
public String name;
@NotNull(message = "Please enter a password")
@JsonProperty("password")
public String password;
@NotNull
@JsonProperty("password_confirmation")
public String passwordConfirmation;
}
到目前为止,这一切都很好 但现在我想建立密码验证(检查2密码是否匹配)。我只会使用这一次,所以我认为没有必要为此创建一个完整的注释 如何在不使用注释的情况下执行此操作。
我找到的解决方案接近我想要的是在验证密码的方法上使用@AssertTrue
:
@AssertTrue("Passwords don't match")
public boolean checkPasswords() {
return this.password.equals(this.passwordConfirmation);
}
这有效,但它没有链接到某个字段,但这是一个全局错误
所以我无法找到Passwords don't match
错误所属的字段。
有没有办法将checkPasswords
验证链接到字段?
答案 0 :(得分:1)
这有效,但它没有链接到某个字段,但它是一个全局错误。
是的,这是一个全局错误,因为您正在使用整个对象。
如何在不使用注释的情况下执行此操作。
我不知道这样的方式。你必须编写自己的验证器才能实现这一点。