我玩了! 2.3从请求绑定的表单对象。 Form对象基本上如下所示:
val languagesForm = Form(
mapping(
"languages" -> list(text)
)(apply)(unapply)
)
我有一些jQuery代码在我的HTML表单中添加了一个新的languages[1]
,但总会有一个空输入提交给哪个Play!包括作为条目。如何删除这些空条目?
答案 0 :(得分:0)
在将控制器方法传递给表单之前,需要过滤控制器方法中的所有已发布值。结果代码如下所示:
def removeEmptyEntries(map: Map[String, Seq[String]]): Map[String, Seq[String]] = {
map.filter(_._1.nonEmpty).map { case (a, b) =>
(a, b.filter(_.nonEmpty))
}.filter(_._2.nonEmpty)
}
然后,在你的控制器内你会这样:
def post = Action(parse.urlFormEncoded) { implicit request =>
languagesForm.bindFromRequest(removeEmptyEntries(request.body))
...
}
map
上的第一个过滤器可能是多余的,但我添加它以防万一。按原样使用此代码,它应该可以正常工作。我正在使用Scala 2.11