表单 – Play Framework 2.1 /表单映射与复杂对象

Scala的Play Framework文档显示了一个隐式地将表单映射到案例类的示例:

case class User(name: String,age: Int)

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

我们注意到在这个独特的样本中只使用了原始值.

如果我们做这个改动怎么样:

case class Car(brandName: String)

case class User(name: String,car: Car)

此外,我们假设表单返回用户名(String)和carId(String)

val userForm = Form(
  mapping(
    "name" -> text,"car" -> carRepository.findById(nonEmptyText)  // concept I wish
  )(User.apply)(User.unapply)
)

有没有办法在这个希望的线路上实例化汽车,例如由表格提供一些carId并确保carId不是空字符串?

解决方法

对于问题的第一部分,文档还显示了嵌套值:

case class Car(brandName: String)
case class User(name: String,car: Car)

val userForm = Form(
  mapping(
    "name" -> text,"car" -> mapping(
        "brandName" -> text
    )(Car.apply)(Car.unapply)
  )(User.apply,User.unapply)
)

相关文章

HTML代码中要想改变字体颜色,常常需要使用CSS样式表。CSS是...
HTML代码如何让字体盖住图片呢?需要使用CSS的position属性及...
HTML代码字体设置 在HTML中,我们可以使用标签来设置网页中的...
在网页设计中,HTML代码的字体和字号选择是非常重要的一个环...
HTML(Hypertext Markup Language,超文本标记语言)是一种用...
外链是指在一个网页中添加一个指向其他网站的链接,用户可以...