我在表单playframework中有26个用于映射方法的参数。但是,它失败了。
mapping(
"id" -> number,
"field_1" -> text,
"field_2" -> text,
"field_3" -> text,
"field_4" -> text,
"field_5" -> text,
"field_6" -> text,
"field_7" -> text,
"field_8" -> text,
"field_9" -> text,
"field_10" -> text,
"field_11" -> text,
"field_12" -> text,
"field_13" -> text,
"field_14" -> text,
"field_15" -> text,
"field_16" -> text,
"field_17" -> text,
"field_18" -> text,
"field_19" -> text,
"field_20" -> text,
"field_21" -> text,
"field_22" -> text,
"field_23" -> text,
"field_24" -> text,
"field_25" -> text
)(Data.apply)(Data.unapply)
但是,我不知道如何解决它,你能帮助我,非常感谢你!
答案 0 :(得分:0)
您达到了最高限额,请参阅Play Doc:
注意:单个元组或映射的最大字段数为22 实现表单处理的方式。如果你有超过22 您的表单中的字段,您应该使用列表或分解您的表单 嵌套值。
答案 1 :(得分:0)
如果您有超过22个字段,则达到限制以使用unapply和tupled方法。你可以做的一种方法是将case类分解为多个peices(例如来自play docs):
case class AddressData(street: String, city: String)
case class UserAddressData(name: String, address: AddressData)
val userFormNested: Form[UserAddressData] = Form(
mapping(
"name" -> text,
"address" -> mapping(
"street" -> text,
"city" -> text
)(AddressData.apply)(AddressData.unapply)
)(UserAddressData.apply)(UserAddressData.unapply)
)