2015-04-12 98 views
0

我有一个Play! 2.3从请求中绑定的表单对象。窗体对象基本上是这样的:Play Framework - 删除空表格条目

val languagesForm = Form(
    mapping(
     "languages" -> list(text) 
    )(apply)(unapply) 
) 

我有一些jQuery代码,增加了一个新的languages[1]到我的HTML形式,但总是会有提交了玩空输入!包括作为条目。我如何删除这些空条目?

回答

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