【发布时间】:2013-06-19 00:15:04
【问题描述】:
我正在 PlayFramework 2.1 中开发一个应用程序。但是,我没有使用表单助手,例如:@inputText,我正在编写自己的 HTML。
如何在不使用表单助手的情况下显示错误消息?因为,如果我使用表单助手,则会显示错误消息。
【问题讨论】:
标签: java forms validation playframework playframework-2.1
我正在 PlayFramework 2.1 中开发一个应用程序。但是,我没有使用表单助手,例如:@inputText,我正在编写自己的 HTML。
如何在不使用表单助手的情况下显示错误消息?因为,如果我使用表单助手,则会显示错误消息。
【问题讨论】:
标签: java forms validation playframework playframework-2.1
在官方文档中有关于如何在没有默认帮助器的情况下编写自己的输入(例如)的简要说明,请查看“编写自己的字段构造器”部分here
我正在添加一个示例,说明如何在这篇文章中编写您自己的模板以澄清一点,以回应您的第二条评论。这个例子对官方文档中的解释做了一些补充。 This post 与这个问题有关,也很有帮助。
首先,您必须创建一个模板,为此,请转到 /app/views/afolderyoulike 并创建 myField.scala.html(例如)。添加此示例代码,您可以根据需要对其进行调整:
@(elements: helper.FieldElements)
<div class="@if(elements.hasErrors) {error}">
<label for="@elements.id">@elements.label</label>
<div class="input">
@elements.input
<span class="errors">@elements.errors.mkString(", ")</span>
</div>
</div>
然后,您拥有表单的视图将类似于以下代码:
@(title: String, formSignup: Form[models.commerce.CommerceSignupRequest])
@import play.data.Form
@import helper._
@implicitField = @{ FieldConstructor(myField.f) }
@main(title) {
<div class="container">
@form(action = routes.CommerceController.signup()) {
<fieldset>
<legend>@title</legend>
@inputText(formSignup("commerceName"))
@inputText(formSignup("blabla1"))
@inputText(formSignup("blabla2"))
</fieldset>
<button type="submit" id="submit-btn" name="submit" class="btn">Send</button>
}
</div>
}
这里重要的代码片段是:
希望对您有所帮助。
【讨论】: