2013-04-09 101 views
0

我有2個片段:TakeIn和SendOut。
TakeIn從搜索數據(通過提交按鈕 提交的1個文本字段並從RequestVar讀取。基於此輸入,我創建並填充了一個數據結構 我想通過 代碼段在網站上顯示此數據結構輸出量。片段之間傳遞數據

但是,我不知道如何片段之間發送數據。我試圖直接訪問片段 變量,它沒有工作。例如,在TakeIn我打電話 SendOut.nodeList = this.nodeList;但這會導致一個編譯時錯誤。

所以問題是如何doe就是從另一個片段中設置一個片段的數據。 或者也許有另一種方法來做我想在這裏實現的。

回答

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的壽命是多少。