【问题标题】:Add global error in validate function在验证函数中添加全局错误
【发布时间】:2013-09-22 11:03:54
【问题描述】:

我有一个登录表单:

public static class LoginForm {
    @Constraints.Required
    public String email;
    @Constraints.Required
    public String password;
}

我需要验证用户是否存在或已验证。所以我的验证功能是:

public List<ValidationError> validate() {
    List<ValidationError> errors = new ArrayList<ValidationError>();
    User user = User.findByEmail(email);
    if (user == null || !Hash.checkPassword(password, user.passwordHash)) {
        errors.add(new ValidationError("email", "Invalid email"));
        return errors;
    } else if (!user.validated) {
        errors.add(new ValidationError("email", "Not validated email"));
        return errors;
    }
     return null;
} 

但是如何使这些错误全局化呢?

【问题讨论】:

    标签: java forms validation playframework-2.2


    【解决方案1】:

    好的,我找到了解决方案。我必须将 ValidationError 第一个参数作为空字符串传递给构造函数。所以整个代码看起来像:

    public static class LoginForm {
        @Constraints.Required
        public String email;
        @Constraints.Required
        public String password;
    
        public List<ValidationError> validate() {
            List<ValidationError> errors = new ArrayList<ValidationError>();
            User user = User.findByEmail(email);
            if (user == null || !Hash.checkPassword(password, user.passwordHash)) {
                errors.add(new ValidationError("", "Invalid email"));
                return errors;
            } else if (!user.validated) {
                errors.add(new ValidationError("", "Not validated email"));
                return errors;
            }
            return null;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 2018-12-12
      • 2018-10-16
      • 1970-01-01
      • 2017-07-04
      • 1970-01-01
      相关资源
      最近更新 更多