我有2个片段:TakeIn和SendOut。
TakeIn从搜索中获取数据(通过提交按钮提交的1个文本字段
并从RequestVar中读取。根据这个输入我正在创建和填充
数据结构。我想在网站上显示这个数据结构
片段SendOut。
但是,我不确定如何在片段之间发送数据。我尝试访问代码段
变量直接,它不起作用。例如,在TakeIn
我正在打电话
SendOut.nodeList = this.nodeList;
但这会导致编译时错误。
所以问题是如何从另一个代码段设置代码段的数据。 或许还有另一种方法可以做我想在这里实现的目标。
答案 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.takeIn
或CombinedSnippet.sendOut
。不确定StatefulSnippet
的生命周期是什么。