Scala 从LiftSession.onShutdownSession侦听器访问SessionVar
我在代码中定义了SessionVar:Scala 从LiftSession.onShutdownSession侦听器访问SessionVar,scala,lift,Scala,Lift,我在代码中定义了SessionVar: object User extends SessionVar[Option[User]] 与会话和请求分开的对象 object StatisticMonitor extends LiftActor{ LiftSession.onAboutToShutdownSession::= onSessionShutdown def onSessionShutdown(targetSession: LiftSession) { /
object User extends SessionVar[Option[User]]
与会话和请求分开的对象
object StatisticMonitor extends LiftActor{
LiftSession.onAboutToShutdownSession::= onSessionShutdown
def onSessionShutdown(targetSession: LiftSession) {
//TODO: how to find User for session targetSession
}
}
问题:
onSessionShutdown
User
绑定到targetSession
(即,通过调用User.Is
我将获取正在关闭的用户)是真的吗LiftSession
实例的SessionVar
。(例如,我有一个LiftSessions数组,我想迭代所有会话变量)无论何时任何会话过期,都将调用向onAboutToShutdownSession添加处理程序,而不仅仅是绑定到
SessionVar
的当前会话。如果您只关心绑定到SessionVar
的会话,您可能希望替代SessionVar
上的方法
我不确定您想要用第二点实现什么,但我不相信您可以从
SessionVar
SessionVar
将cleanuparam
定义为cleanuparam=LiftSession
。所以我又一次关闭了(会话:LiftSession)。我必须提取绑定到会话的SessionVar值。我需要类似于session.get(User)
的东西来从session
提取User
会话变量。是的,除了onShutdown
方法存在于SessionVar
中之外,您应该能够使用这个引用过期对象上的任何方法。