我有一个登录表单,用于检查用户是否选择了“记住我”,如果满足条件,它将自动填写电子邮件字段。
这是我的表单对象:
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”]}