session - Grails session 变量为null

标签 session grails session-state session-variables grails-2.0

我的应用程序具有昂贵的服务方法,其结果必须为1)检查错误,然后2)通过URL(即与JavaScript变量相对)显示给Java小程序。方法的结果是一个字符串,并且小程序只能从文件或URL加载数据。

我试图使用 session 变量来处理该问题:

def action1 = {
    def input = params['input']
    def result = expensiveServiceMethod( input )
    def failed = result == null
    session['result'] = result
    render( view:'view1', model:[failed:failed] )
}

def action2 = {
    def result = session['result']
    render( result )
}

然后,在view1中,视故障状态而定,有条件地显示applet,并且applet通过action2 URL访问结果。

不幸的是,result中的action2即将出现null。我已验证result中的null不是action1。我做错了吗?

注意
我本来会使用flash,但是为了初始化applet,还有其他请求。

最佳答案

小程序无法自行跟踪 session Cookie。因此,当您的小程序向action2发送第二个请求时-它不会将 session cookie发送回服务器。因此,对于服务器来说,它就像一个全新的 session ,您在action1期间在 session 中设置的任何内容在action2中将不可用。您必须在小程序中跟踪cookie,并在打电话时将它们发送回服务器。

我从未做过,但是我认为您可以在客户端(小程序)上使用Apache commons http客户端-它支持跟踪cookie

看到这个question-

关于session - Grails session 变量为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11134851/

相关文章:

javascript - session 超时计时器未等待音轨播放时间

python - 如何访问 CKAN 扩展中的 session 对象?

javascript - 在关闭浏览器时清除缓存的代码

grails - 无法在GGTS中配置Grails 3.0.4,使用GVM安装了Grails

hibernate - GORM删除操作:找到相同集合的两个表示

asp.net - 使用 Cookie 获取 Web session 状态 - 有哪些陷阱?

asp.net - 什么是以及为什么使用 session 模式 : SQL Server Mode?

php - 如何从 Magento 外部访问 Magento 客户的 session ?

ruby-on-rails - Rails 使用 Redis 作为 Unicorn 的 session 存储

exception - 同时以错误级别记录每个异常