在Play Framework 2中显示错误

sch*_*gel 11 validation error-handling playframework playframework-2.0

首先,我想说明我认为2.0的Play文档非常非常糟糕.

我正在寻找一种方法在HTML选择下面放置一个验证错误,就像播放一样,它会自动生成一个输入框.

我试图复制播放输入框的结果HTML代码的结构,但我确定我在HTML代码中缺少一些ifError-Scala模板行.

不好的是,找不到Play <2.0文档已涵盖的主题的Play 2.0文档.因此,如果您正在寻找文档中的解决方案,那么您将获得旧的,无法工作的文档.很沮丧!

2ma*_*cts 16

我使用此代码在窗体上显示全局引导警报框:

@if(form.hasErrors) {
    <div class="alert alert-error">
        <a class="close" data-dismiss="alert">x</a>
        @if(form.errors.size() > 0) {
            @for((key, value) <- form.errors) {
                @key.toString() : 
                    @for(err <- value) {
                        @err.message().toString()
                    }
            }
        } else {No error returned.}
    </div>
}
Run Code Online (Sandbox Code Playgroud)

表单错误键值对的输出是一个bootstrap警告框@key.toString() : @value.message.toString.

如果您希望在字段级别显示错误,则需要使用form.errors映射值的另一个条件语句稍微修改它,以便仅针对特定字段触发它.我没有测试过这个,但它有点像:

@if(form.hasErrors) {
    @if(form.errors.size() > 0) {
        @for((key, value) <- form.errors) {
            @for(err <- value) {
                @if(err.contains("YourSelectFieldName")) {
                    @err.message().toString()
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 在2.1 form.errors中包含一个`FormError`s而不是元组的Seq,但除此之外,它几乎没有变化. (3认同)