1

我有一个登录表单,用于检查用户是否选择了“记住我”,如果满足条件,它将自动填写电子邮件字段。

这是我的表单对象:

val loginForm = Form(
tuple(
  "email" -> email,
  "password" -> text(minLength = 3),
  "remember" -> boolean
  )
)

会话中可能存储了一个 KV 对 ( "remember" -> email: String)。我有一个工作函数,可以将此电子邮件作为Option[String].

这是呈现登录页面的函数。views.html.login是一个模板,它接受一个表单对象和一个message: String用于中继任何身份验证错误的可选对象。

def login = Action {
    request => {
      logRequest(request)
      if (UserInfo.isAuth(request.session)) {
        Redirect(routes.Application.index())
      }
      else {
        val email = UserInfo.getRememberedEmail(request.session)
        if (email.isDefined) {
          Ok(views.html.login(loginForm.fill(email.get, "", true)))
        }
        else {
          Ok(views.html.login(loginForm))
        }
      }
    }
  }

我认为问题发生在Ok(views.html.login(loginForm.fill(email.get, "", true))). 在检查表单是否有错误时,我发现:

{“记住”:[“error.boolean”]}

4

0 回答 0