我的应用程序包含具有 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/