Add global error in validate function

浪尽此生 提交于 2020-01-06 00:55:05

问题


I have a login form:

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

And I need to validate if user exist or is validated. So my validate function is:

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

But how to make these errors global?


回答1:


Ok I found out solution. I have to pass to concstuctor of ValidationError first argument as empty string. So whole code looks like:

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


来源:https://stackoverflow.com/questions/18943169/add-global-error-in-validate-function

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!