Jakarta ee Grails2:关于GrailsWebFlow的查询

Jakarta ee Grails2:关于GrailsWebFlow的查询,jakarta-ee,grails,grails-2.0,spring-webflow,Jakarta Ee,Grails,Grails 2.0,Spring Webflow,我正在使用Grails2.3.11。应用程序使用grailswebflow 流程包括四个选项卡,它们将被视为GrailsWebFlow的步骤。单击某个步骤将进入列表/搜索页面。第一次初始搜索将具有默认搜索参数值。同时,它存储到执行范围的活动会话的范围中 下面是代码片段 Object res=execution.getActiveSession().getScope().put(beanID,bean) 这里的execution是FlowExecution的参考 稍后,将使用活动会话本身检索此对象

我正在使用Grails2.3.11。应用程序使用grailswebflow

流程包括四个选项卡,它们将被视为GrailsWebFlow的步骤。单击某个步骤将进入列表/搜索页面。第一次初始搜索将具有默认搜索参数值。同时,它存储到执行范围的活动会话的范围中

下面是代码片段

Object res=execution.getActiveSession().getScope().put(beanID,bean)

这里的
execution
FlowExecution
的参考

稍后,将使用活动会话本身检索此对象。下面是检索数据的代码段

objectobjectfound=execution.getActiveSession().getScope().get(beanID)

在这两种情况下,
beanID
是相同的

现在发生的事情是,当我把它放到活动会话中时,它不会给出错误,所以假设它被正确保存。但在另一个ajax请求中检索对象时,检索对象会返回null。表示找不到具有密钥的对象

然后奇怪的事情发生了,当我执行搜索操作时,执行了和上面提到的相同的操作。现在,使用同一个键进行检索时,它会返回对象,而不会得到空值

我的问题是为什么会发生这种情况?在这种情况下,web流是如何工作的

我认为在这两种情况下,它都应该根据插入对象的键返回对象


如果您需要有关查询的更多信息,请告诉我。

我有点困惑,为什么不使用
flow
scope?上面提到的代码片段是在另一个groovy类中编写的。这不是控制器动作的一部分。从action开始,流被引导到gsp页面,而不是其他页面。从该页面开始,通过ajax调用执行被用来获取存储在执行活动会话中的值。和
flow
范围变量仅在控制器中可用。因此,不可能使用
flow
scope变量。
execution.getActiveSession().getScope()
相当于flow作用域,不是吗?它被视为流会话范围。它适用于SpringWebflow2.4,但我想Grails2使用的SpringWebflow2.0也会一样。