0

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

我尝试使用会话变量来处理该问题:

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小程序中根据故障状态有条件地显示,结果由小程序通过action2URL 访问。

不幸result的是,action2即将到来null。我result已经确认不在 null. action1我做错了吗?

注意
我会flash改用,但是为了初始化小程序还有其他请求。

4

1 回答 1

1

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

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

看到这个问题-

于 2012-06-21T09:27:29.497 回答