Java游戏!2-密码限制

Java游戏!2-密码限制,java,constraints,playframework-2.0,Java,Constraints,Playframework 2.0,我在游戏中找不到@Equal约束!二, 我浏览了API 我想要一个检查密码是否相等的注册表。我不认为我必须为这样一个常见的问题编写自己的约束 比如: ... @Min(6) public String password; @Equal(password) public String confirmPassword; ... 我在其他Java框架中没有任何@Equal约束,在JSR303中也没有 要检查密码并不困难:在表单对象中,只需编写一个公共字符串validate()方法: public

我在游戏中找不到@Equal约束!二,

我浏览了API

我想要一个检查密码是否相等的注册表。我不认为我必须为这样一个常见的问题编写自己的约束

比如:

...
@Min(6)
public String password;
@Equal(password)
public String confirmPassword;
...

我在其他Java框架中没有任何
@Equal
约束,在JSR303中也没有

要检查密码并不困难:在表单对象中,只需编写一个
公共字符串validate()
方法:

public class SignupForm {

    @Min(6)
    public String password;

    @Min(6)
    public String confirmPassword;

    public String validate() {
        if(!password.equals(confirmPassword)) {
            return "Password mismatch";
        }
        return null;
    }

}

请看一下,在这里。

以防有人从谷歌那里偶然发现这个问题。这就是我所做的

    @MinLength(6)
    public String password;

    @MinLength(6)
    public String confirmPassword;

    public List<ValidationError> validate(){
        List<ValidationError> errors = new ArrayList<ValidationError>();
        if(!this.password.equals(this.confirmPassword)){
            errors.add(new ValidationError("password", "Passwords must match."));
        }
        return errors.isEmpty() ? null : errors;
    }
@MinLength(6)
公共字符串密码;
@最小长度(6)
公共字符串确认密码;
公共列表验证(){
列表错误=新建ArrayList();
如果(!this.password.equals(this.confirmPassword)){
添加(新的ValidationError(“密码”,“密码必须匹配”);
}
返回错误。isEmpty()?null:错误;
}
您必须使用
@MinLength(6)
而不是
@Min(6)
,我认为这是因为密码是一个字符串。如果有人没有输入匹配的密码,返回验证错误列表将在表单中显示为错误。否则,他们就看不出哪里出了问题


我在这里找到了有用的信息

下面的代码返回全局错误

public String validate() {
   if(!password.equals(confirmPassword)) {
      return "Password mismatch";
   }
    return null;
}
但下面的代码段更具体地返回confirmPassword字段特有的错误

public List<ValidationError> validate(){
   List<ValidationError> errors = new ArrayList<ValidationError>();
   if(!this.password.equals(this.confirmPassword)){
       errors.add(new ValidationError("confirmPassword", "Password should be same."));
    }
    return errors.isEmpty() ? null : errors;
}
公共列表验证(){
列表错误=新建ArrayList();
如果(!this.password.equals(this.confirmPassword)){
添加(新的ValidationError(“confirmPassword”,“密码应该相同”);
}
返回错误。isEmpty()?null:错误;
}
这是一份官方文件,详细描述了这一点