gpt4 book ai didi

java - Spring Boot 自定义字段验证

转载 作者:行者123 更新时间:2023-12-02 12:15:25 24 4
gpt4 key购买 nike

我正在尝试进行以下验证:

  • 正在检查数据库中存在的电子邮件。
  • 正在检查数据库中是否存在用户名。
  • 检查密码确认输入是否正确。

我正在使用一个类进行验证。示例:

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);
}

这有效,但它没有链接到字段,但它是一个全局错误。
所以我无法找出密码不匹配错误属于哪个字段。有没有办法将 checkPasswords 验证链接到字段?

最佳答案

This works but it is not linked to a field, but it is a global error.

是的,这是一个全局错误,因为您正在处理整个对象。

How can I do this without the use of an Annotation.

我不知道这样的方法。您必须编写自己的 validator 才能实现这一目标。

关于java - Spring Boot 自定义字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46221116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com