从LiftSession.onShutdownSession侦听器访问SessionVar

时间:2013-08-30 11:58:52

标签: scala lift

我的代码中有一个SessionVar定义了somwhere:

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 
    }
}

问题:

  1. 内部onSessionShutdown User内绑定targetSession是否属实(即通过调用User.is我将获得正在关闭的用户)。

  2. 有没有办法访问任何SessionVarLiftSession实例。 (例如,我有LiftSessions数组,我想迭代所有会话变量)

1 个答案:

答案 0 :(得分:1)

只要任何会话到期,就会调用向onAboutToShutdownSession添加处理程序,而不仅仅是绑定到SessionVar的当前会话。如果您只关注与SessionVar绑定的会话,则可能需要覆盖SessionVar上的onShutdown(session:CleanUpParam)方法。

我不确定你想要用第二点完成什么,但我不相信你可以从LiftSession访问基础SessionVar