2

我有一个包含一些值的表单。当 POST 到服务器时,服务器会验证信息,如果任何字段无效,则应该返回填写的表单。

我目前设置它的方式是这样的。

我有一个验证 2 个字段的表单。

val userForm = Form(
  mapping(
    "name" -> text,
    "age" ->  number(min=0, max=100)
  )(User.apply)(User.unapply)
)

如果表单无法绑定,我会使用他们刚刚发布的值加载相同的表单。

 def createItem() = IsAuthenticated {
   username =>
      implicit request => {
        createExperienceForm.bindFromRequest().fold(
          formWithErrors => BadRequest(
            views.html.createItem(formWithErrors)
          ),
          validForm => {
            val itemCode = Item.createItem(validForm)
            Redirect(routes.Item.item(itemCode).url)
          }
        )
      }
  }

问题是我必须在我的 HTML 页面中为每个表单手动设置值。例如。@(itemForm: 表单[ItemContent])

<input name="age" type="number" class="input-block-level" value="@itemForm.data.get("age")">

虽然这可行,但在较大的表单上会变得容易出错。对于每个字段,我需要直接设置值。是否可以自动填充这些字段?

4

1 回答 1

0

文档说明了它http://www.playframework.com/documentation/2.2.x/ScalaForms - 向下滚动到“填充值”

val userForm = userForm.fill(User("Bob", 18))

于 2014-08-11T09:20:07.580 回答