2013-04-09 3 views
0

У меня есть 2 фрагмента: TakeIn и SendOut.
TakeIn берет данные из поиска (1 текстовое поле, отправленное через кнопку отправки и считывание с RequestVar. На основе этого ввода я создаю и заполняю структуру данных . Я хочу отобразить эту структуру данных на веб-сайте через фрагмент SendOut.Передача данных между фрагментами

Однако, я не знаю, как передать данные между отрывками. Я попытался доступом фрагмент кода переменных напрямую, и это не сработало. Например, в TakeIn я звоню SendOut.nodeList = this.nodeList;, но это приводит к ошибке времени компиляции.

Итак, вопрос заключается в том, как doe s один набор данных фрагмента из другого фрагмента. Или, возможно, есть еще один способ сделать то, что я пытаюсь достичь здесь.

ответ

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.

Смежные вопросы