Grails:如何存储/加载多个会话变量?

时间:2014-06-25 19:40:51

标签: session grails

我有一个Grails(2.3.6)应用程序,并希望存储用户特定的会话数据。根据{{​​3}},我可以某种方式使用session.data对象。

问题是,该答案似乎表明您一次只能存储1个会话变量:

session.data = someObject

但是,如果我希望我的应用为每个登录用户设置fizzbuzzfoo变量,该怎么办?例如:

User 1
======
fizz = true
buzz = abc
foo = 3

User 2
======
fizz = false
buzz = def
foo = 193

...etc. for all Users

如何在fizz内为用户1存储session.data?其他价值怎么样?

如何加载(访问)当前用户的fizz(或其他)值?

2 个答案:

答案 0 :(得分:3)

session特定于用户(不仅仅是用户的当前浏览器会话),因此,如果您在控制器中,则可以将session视为一张地图。它将为用户注入会话,以便您可以使用它。 session.data没有什么特别之处,这只是开发人员想要使用的密钥的名称。

如果您要求简化代码,可以使用.with,但这不是必需的:

session.with {
    fizz = true
    buzz = abc
    foo = 3
}

也翻译:

session.fizz = true
session.buzz = abc
session.foo = 3

答案 1 :(得分:2)

data只是一个变量名。您可以以相同的方式存储其他变量

session.fizz = true
session.buzz = abc
...