forms - 使用 Play 2 处理很长的表单

标签 forms scala playframework-2.0

我的应用程序包含具有 18 个字段的大表单。它使用标准表单映射进行处理,如下所示:

val bigForm = Form(
  mapping(
    "id"    -> of[ObjectId],
    "title" -> text,
    // And another 16 fields...
    ...
  )
)

一切都很好,但今天我决定再添加一个字段,问题来了 - mapping不能接受超过 18 个参数。

那我该怎么办?我想将一些字段合并到结构中,但是额外的结构需要额外的格式化程序、JSON 序列化器和反序列化器,工作量太大。我正在寻找一个通用的解决方案, future 可能会出现更多领域。

我正在考虑的另一个解决方案是手动处理表单,而不是 Form的。

有更好的解决方案吗?

最佳答案

您可以使用嵌套映射,例如

val bigForm = Form(
  mapping(
    "id"    -> of[ObjectId],
    "title" -> text,
    "general" -> mapping(
      ...
    )(GeneralInfo.apply)(GeneralInfo.unapply),
    "advanced" -> mapping(
      ...
    )(AdvancedInfo.apply)(AdvancedInfo.unapply)
  )
)

关于forms - 使用 Play 2 处理很长的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12263918/

相关文章:

javascript - 每次提交表单时ajax调用次数都会增加

ruby-on-rails - rails : How do I use hidden_field in a form_for?

playframework - Play Framework : split routes in multiple files without sub projects

scala - 找不到 ^ 类型的证据参数的隐含值

scala - 玩!网络服务 : redirect with encoded URL

web-services - Play 2.0 中的 WebService (WS) POST - Scala

javascript - 小数点问题以及 JavaScript 和 HTML 表单的格式设置问题

php - 如何将表单下拉列表选择的值存储到 mysql 数据库中

scala - "dynamically"使用宏创建案例类

scala - 将文件读入 map