Grails的从会话存储的实例获取空值

问题描述 投票:0回答:1

我工作的Grails。我的要求是让每个用户整个应用程序,直到用户的会话对象是可用的。启动后,当我登录时的用户我的应用程序,之后我把一个对象的会话。

Object object = Object.findById(idName)
session.object = object

在控制器时,我需要这个目标我只是写这句法。

Object object = session.object

有时也被我得到这个语法对象。

Object object = Object.findById(session.object?.id)

有时他们返回确切的对象,有时它返回null。我没有得到我在哪里犯错。

hibernate grails httpsession
1个回答
0
投票

会话跟踪每个应用程序的用户 - 当你把东西在一个用户的会话是只存在于他的,其他会话保持不变。

从你说的话,你要的对象是存在的应用范围。为了这个目的,你可以使用参数servletContext - http://grails.org/doc/latest/ref/Controllers/servletContext.html

在引导您可以使用它像这样:

def init = { 
  servletContext ->

  Object object = Object.findById(idName)
  servletContext.setAttribute('myObject', object)
}

在此之后,对象将在通过所有控制器可用

servletContext.getAttribute('myObject')
© www.soinside.com 2019 - 2024. All rights reserved.