Play Framework 2.1.3表格的fillAndValidate不处理全局错误

时间:2013-08-21 14:59:05

标签: scala playframework playframework-2.1

在表单上使用fillAndValidate时,我无法识别一些奇怪的行为。这是我能想到的最简单的用例来隔离问题:

object Application extends Controller {

  case class SimpleForm(val field: String)

  val form = Form(
    mapping(
      "field" -> text.verifying("message", (s: String) => false)
    )(SimpleForm.apply)(SimpleForm.unapply))

  def index = Action { implicit request =>
    println("bindFromRequest: " + form.bindFromRequest.errors)
    println("fillAndValidate: " + form.fillAndValidate(SimpleForm("value")).errors)

    Ok
  }
}

在使用查询?field=value请求索引页面时,我在控制台上收到以下内容:

bindFromRequest: List(FormError(field,message,WrappedArray()))
fillAndValidate: List(FormError(field,message,WrappedArray()))

据我所知,这是预期的行为。

但是,在使用全局错误时,例如直接验证映射:

val form = Form(
  mapping(
    "field" -> text
  )(SimpleForm.apply)(SimpleForm.unapply)
  .verifying("message", (s: SimpleForm) => false))

我得到的行为非常令人惊讶:

bindFromRequest: List(FormError(,message,WrappedArray()))
fillAndValidate: List()

为什么fillAndValidate会忽略错误?有没有办法解决这个问题?

0 个答案:

没有答案