Play Framework 2.3.x中泛型类的表单处理

时间:2015-03-22 09:55:21

标签: forms validation scala inheritance playframework-2.3

我有一组基于sealed trait的模型类,如下所示:

sealed trait Base {
   def baseValue: String
}

case class ChildA(
   baseValue: String
   childAValue: Int
) extends Base

case class ChildB(
   baseValue: String
   childBValue: String
) extends Base

如何正确处理form submission,即如何定义Form根据给定的输入数据生成Base类型的对象。我期待一个额外的字段$type,它保存特定子类型的类类型信息。理想情况下,表单还会处理具有相应表单错误的未知类型。

1 个答案:

答案 0 :(得分:0)

如果您希望表单生成Base类型的对象(即ChildA类型或ChildB类型的对象),也许您应该查看Scala' s Either类型。更多信息:http://danielwestheide.com/blog/2013/01/02/the-neophytes-guide-to-scala-part-7-the-either-type.html