我有一个登录表单,用于检查用户是否选择“记住我”,如果符合条件,它将自动填写电子邮件字段。
这是我的Form对象:
val loginForm = Form(
tuple(
"email" -> email,
"password" -> text(minLength = 3),
"remember" -> boolean
)
)
会话中可能存在KV对("remember" -> email: String
)。我有一个工作函数,它将此电子邮件作为Option[String]
返回。
这是呈现登录页面的功能。 views.html.login
是一个模板,它接受一个Form对象和一个可选的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)))
。在检查表单是否有错误时,我发现了这一点:
{“remember”:[“error.boolean”]}