gpt4 book ai didi

validation - 如何在 Play 中的特定表单字段上设置自定义验证错误! 2.*

转载 作者:行者123 更新时间:2023-12-03 17:04:50 26 4
gpt4 key购买 nike

基本上我有以下表单类。

public static class BasicForm {
@Required
public String name;
@Required
@Email
public String email;
@Required
public String password;
@Required
public String confirmPassword;

public List<ValidationError> validate() {
if (User.findByEmail(email) != null) {
List<ValidationError> validationErrorList = new ArrayList<ValidationError>();
validationErrorList.add(new ValidationError("email", "error.alreadyexists", new ArrayList<Object>()));
return validationErrorList;
}
return null;
}

}

如您所见,我正在尝试验证电子邮件地址的唯一性。
如果电子邮件不是唯一的, 我想在电子邮件字段上显示错误消息,而不是作为全局错误消息

实现 validate() 方法来实现这一目标的正确方法是什么?

最佳答案

您应该使用 validate具有以下签名的方法:

public Map<String, List<ValidationError>> validate()

通过这种方式,您可以向单个字段添加错误,如下所示:

Map<String, List<ValidationError>> errors = null;
if (emailIsBad) {
errors = new HashMap<String, List<ValidationError>>();
List<ValidationError> list = new ArrayList<ValidationError>();
list.add(new ValidationError("email", "email is bad"));
errors.put("email", list);
}
return errors;

请注意,如果您应该返回一个空的 map ,它仍然会将表单呈现为错误的。如果您想要 validate()方法要成功,你需要返回null。

关于validation - 如何在 Play 中的特定表单字段上设置自定义验证错误! 2.*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12404088/

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