如何在Play Java中显示validate()的错误

时间:2013-11-11 07:59:57

标签: java validation playframework-2.2

我正在使用play 2.2.0 for java

public String email;
public String validate(){

    if(email!= null &&(email.endsWith("@xyz.com") )){
        return null;
    }
    System.out.println("error");
    return "Please Add valid xyz  email id only ";
}

以上是我验证电子邮件的代码

我的问题是,如果用户输入错误的电子邮件ID,如何在表单中显示“请仅添加有效的xyz电子邮件ID”

我试过

@helper.inputText(playerForm("email"), '_label -> "Email",'_help -> "Must be xyz id",   
    '_showConstraints -> false,
    '_showErrors -> true,
    '_error -> playerForm.error("email")
)

但它不起作用

2 个答案:

答案 0 :(得分:1)

只是提供另一种解决方案,您可以根据需要使用三种版本的validate()方法。您正在使用最简单的方法,只需返回“NULL”或“String”错误消息。另外两个版本允许您在特定字段上指定多个错误(因此它们不会转到“全局”错误映射。

public List<ValidationError> validate(){
  ...
}

public Map<String, List<ValidationError>> validate(){
  ...
}

String版本一样,如果没有错误,您只需返回NULL。如果您确实有错误,则填充ListMap,但会出现一个或多个错误。地图版本允许您在多个字段中指定错误。

new ValidationError("email", "Please add valid xyz email id only.");

答案 1 :(得分:0)

得到答案。 它会导致全局错误 你可以通过

获得它
@if(form.hasGlobalErrors) {
   <div class="alert alert-error">@form.globalError.message</div>
}