Java 使用Play Framework格式化视图中的ValidationError

Java 使用Play Framework格式化视图中的ValidationError,java,scala,playframework,playframework-2.0,validationerror,Java,Scala,Playframework,Playframework 2.0,Validationerror,我无法从视图中访问ValidationError消息。 我在视图中获得的唯一输出是: [ValidationError(username,Too short, sorry ;),[6])] [ValidationError(password,Confirmation password doesn't match,[])] 我只想输出错误消息:“太短,抱歉;)”和“确认密码不匹配” 我找到的解决方法是从表单中调用特定字段,然后访问错误消息: @form("password").error.map

我无法从视图中访问ValidationError消息。 我在视图中获得的唯一输出是:

[ValidationError(username,Too short, sorry ;),[6])]
[ValidationError(password,Confirmation password doesn't match,[])]
我只想输出错误消息:“太短,抱歉;)”和“确认密码不匹配”

我找到的解决方法是从表单中调用特定字段,然后访问错误消息:

@form("password").error.map(_.message).getOrElse("")
谢谢

My view register.scala.html:

@if(form.hasErrors) {
<div class="form-group">
    <div class="alert alert-danger col-lg-6 text-center">
       @for((key, vamlue) <- form.errors){
         @value<br />
       }
   </div>
</div>
}

听起来您希望收集所有表单错误并将其显示在表单顶部。我认为这就是您希望在HTML模板中使用的代码块

@if(form.hasErrors) {
  <div class="form-group">
    <div class="alert alert-danger col-lg-6 text-center">
      @for(entry <- form.errors.entrySet){
        @for(error <- entry.getValue){
          @error.message <br/>
        }
      }
    </div>
  </div>
}
@if(form.hasErrors){

@对于(entry),我不太确定您的要求。我试图只打印可读的错误消息,而不是ValidationError对象。
@Required
@MinLength(6)
String username;

@Required
@Email
String email;

@Required
@MinLength(6)
String password;
@if(form.hasErrors) {
  <div class="form-group">
    <div class="alert alert-danger col-lg-6 text-center">
      @for(entry <- form.errors.entrySet){
        @for(error <- entry.getValue){
          @error.message <br/>
        }
      }
    </div>
  </div>
}