在片段之间传递数据

时间:2013-04-09 14:52:56

标签: forms lift

我有2个片段:TakeIn和SendOut。
TakeIn从搜索中获取数据(通过提交按钮提交的1个文本字段 并从RequestVar中读取。根据这个输入我正在创建和填充 数据结构。我想在网站上显示这个数据结构 片段SendOut。

但是,我不确定如何在片段之间发送数据。我尝试访问代码段 变量直接,它不起作用。例如,在TakeIn我正在打电话 SendOut.nodeList = this.nodeList;但这会导致编译时错误。

所以问题是如何从另一个代码段设置代码段的数据。  或许还有另一种方法可以做我想在这里实现的目标。

1 个答案:

答案 0 :(得分:1)

最简单的方法是为SendOut创建一个包含SessionVar的伴随对象。然后,您可以直接从TakeIn中的表单设置该变量,SendOut代码段将在会话期间继续有效。

或者,您可以尝试将两个片段组合成一个Stateful Snippet,并通过调度方法使用每个可调用的功能。例如:

 class CombinedSnippet extends StatefulSnippet {
   var nodeList = //something

   def dispatch = {
     case "takeIn" => takeInFunctionality()
     case "sendOut" => sendOutFunctionality()
   }
 }

然后,在您的HTML中将其引用为CombinedSnippet.takeInCombinedSnippet.sendOut。不确定StatefulSnippet的生命周期是什么。