【问题标题】:How to get full form validation error message without form helper in Play Framework 2?如何在 Play Framework 2 中获得没有表单助手的完整表单验证错误消息?
【发布时间】:2014-02-28 01:56:38
【问题描述】:

由于 HTML 表单可以有许多不同的形状,我想了解如何创建单独设计的表单,而无需为每种情况创建输入助手。我能找到的所有示例都与表单助手有关。

在我的控制器中,我有这样的东西:

formWithErrors => BadRequest(views.html.formsamples.getform1(formWithErrors))

我的看法:

<div class="form-group@{if(form.error("age")) " has-error"}">
    <label for="exampleInputAge1" class="control-label">Age</label>
    <input type="text" class="form-control" name="age" id="exampleInputAge1" placeholder="Enter age">
    @if(form.error("age")) {
        <span class="help-block">(1) @form.error("age")</span>
        <span class="help-block">(2) @form.error("age").get.message</span>
        <span class="help-block">(3) @Messages(form.error("age").get.message, form.error("age").get.args)</span>
    }
</div>
@helper.inputText(form("age"))

错误输出如下所示:

(1) FormError(age,error.max,WrappedArray(100))
(2) error.max
(3) Must be less or equal to WrappedArray(100)

数字 (3) 尽可能接近,但它仍然不是正确的错误消息,因为据我了解 @Messages 需要翻译所需的单独参数,而 form.error("age").get.args 提供参数作为 @987654327 @。

当我使用 Play Framework 的默认输入助手时,(第一条)错误消息是:Must be less or equal to 100

如何获取包含翻译完整错误消息所需的所有参数的此消息?

(full view file 可以在 GitHub 上找到。)

【问题讨论】:

    标签: forms scala playframework translation playframework-2.2


    【解决方案1】:

    要使用数组(或类似的集合),您可以使用以下内容:

    def method(args:String *):Unit
    
    method("one", "two")
    
    method(Seq("one", "two"): _*)
    

    这是play框架源码中的一行:Helpers.scala#27

    【讨论】:

    • 所以我只需将form.error("age").get.args 更改为form.error("age").get.args: _* 即可。干杯!
    猜你喜欢
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2016-12-31
    相关资源
    最近更新 更多