4
我想从用户类转换用户ID并将其存储在播放!会话变量。但是,当我尝试打印出该会话变量时,它将返回一个空白字符串。这是一个简单的认证。斯卡拉长转换为字符串打印空白
在认证过程:在播放
session += "userid" -> user.id.toString
打印会话变量!阶视图:
@ctx("userid")
整个认证DEF:
def authenticate(login:LoginAttempt) = {
println("in authenticate")
User.authenticate(login.username, login.password) match {
case Some(user:User) => {
session += "username" -> user.emailAddress
session += "userid" -> user.id.toString
session += "name" -> user.name
session += "accounts" -> user.accounts.toString
Redirect(session("path").getOrElse("/"))
}
case _ => {
flash += "error" -> "Wrong username or password."
Action(Authentication.login)
}
}
}
和用户类:
case class User(
val id: Long,
溶液?这里有什么缺失或出错,阻止user.id
被存储在会话中?谢谢
即使我确定在发布之前确认了所有内容,但它似乎是一个初始化错误:您初始化了会话吗?你使用它之前初始化用户ID? 否则我不会看到什么会改变一个'长'与'字符串' – 2012-02-10 17:07:48
正确的两个都已初始化,我可以验证bc我有权访问字符串,如我在会话中存储的用户名。我唯一的猜测是我错过了游戏的“特色”!会话变量。 – crockpotveggies 2012-02-10 18:01:03
事实上,我现在有一个与liftweb相同的问题,但是,它与'SessionVar'一起使用,但不与'RequestVar'一起使用。 – 2012-02-10 18:03:48