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;
请注意,如果您应该返回一张空地图,它仍会将表格渲染为错误.如果希望valIDate()方法成功,则需要返回null.
总结以上是内存溢出为你收集整理的如何在Play中的特定表单字段上设置自定义验证错误! 2. *全部内容,希望文章能够帮你解决如何在Play中的特定表单字段上设置自定义验证错误! 2. *所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)