str*_*obe 3 scala playframework-2.0
我想将Option值映射到表单但不会被忽略.例如:
case class Message(Id: Option[Int], name: String, description: Option[String])
val messageForm: Form[Message] = Form(
mapping(
"id" -> ignored(Option(0)),
"name" -> nonEmptyText(minLength = 4, maxLength = 140),
"description" -> text
)(Message.apply)(Message.unapply))
^
type mismatch;
found : (Option[Int], String, Option[String]) => Message
required: (Option[Int], String, String) => ?
Run Code Online (Sandbox Code Playgroud)
忽略"id"值使用成功,但"text"使用apply函数产生错误.怎么做得比?我需要为Option [String]编写自定义表单约束吗?
你可以转换Mapping[String]为Mapping[Optional[String]]使用这样的optional方法:
val messageForm: Form[Message] = Form(
mapping(
"id" -> ignored[Option[Int]](None),
"name" -> nonEmptyText(minLength = 4, maxLength = 140),
"description" -> optional(text)
)(Message.apply)(Message.unapply))
Run Code Online (Sandbox Code Playgroud)
请注意,您可以None用来表示id字段中没有值.
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |