1
我想知道如何強制Play Scala框架表單映射器在數組屬性中保存空值。在Play框架表單映射數組中保留空值
例子。請求體(打印出片段的下面):
AnyContentAsJson({
"entities":["ENI","GDF Suez","Procter & Gamble"],
"entityValues":[null,"42",null]
})
所得entityValues
屬性的值綁定後:
List(Some(42.0))
但我希望看到:控制器
List(None, Some(42.0), None)
代碼片段:
def actionX = Action {implicit request =>
println(request.body)
TaskForm.form.bindFromRequest.fold(
formWithErrors => {
BadRequest("error")
},
taskData => {
println(taskData.entityValues)
}
)
}
Form類與映射:
case class TaskForm(entities: List[String],
entityValues: List[Option[Double]]) { }
object TaskForm {
val map = mapping(
"entities" -> list(text),
"entityValues" -> list(optional(of(doubleFormat)))
)(TaskForm.apply)(TaskForm.unapply)
val form = Form(
map
)
}
我也試過的optional
和default
映射參數的某些組合,但結果仍是相同的。
使用0
或任何其他數值而不是null
不是這種情況。
有沒有人有任何想法如何實現這種形式的行爲?
在此先感謝您的時間和關注。
謝謝您的明確答案。它解決了我的問題。 – serkas