Вопрос по playframework, scala, playframework-2.0 – Могу ли я вызвать сессию в шаблоне / представлении на Play Framework

11

Я новичок в использовании Play Framework 2.0 (я использую Scala) и у меня есть вопрос о сессиях.

Я родом из Ruby on Rails, поэтому я склонен думать обо всем, что я узнал в Play Framework относительно Ruby on Rails.

Имея это в виду, могу ли я как-нибудь вызвать вещи, хранящиеся в сеансе, пока я в поле зрения?

Если у меня есть "привет" - & GT; & Quot; мир & Quot; сохраненный в сеансе, я хочу иметь возможность делать что-то вроде @ session.get (& quot; здравствуй & quot;) и иметь возможность использовать & quot; world & quot; в представлении. Это возможно?

Другой вариант, который я вижу, состоит в том, чтобы сохранить значение в переменной в контроллере и передать его представлению, выполнив что-то вроде OK (var), но этот способ кажется довольно неуклюжим, особенно если я начну использовать больше переменных.

Спасибо!

Ваш Ответ

3   ответа
22

для данных перекрестных запросов. Если это то, что вы хотите, то вы можете использовать@session.get("hello") но на самом деле вам может понадобиться способ передачи содержимого из контроллеров в шаблоны без необходимости указывать их в качестве параметров. В этом случае, смотрите очень подробный ответ на этот вопрос здесь: https://stackoverflow.com/a/9632085/77409

Ах я вижу! Спасибо, что сработало :-)
Смотрите другой ответ здесь для более подробной информации.
сессия, кажется, не находится в области, когда я пытаюсь этот метод?
11

@session.get("hello") в шаблоне, однако, похоже, что вам нужно указать хотя бы неявный параметр с именем «сессия»; в начале шаблона при использовании шаблонов с контроллерами Scala:

@()(implicit session: play.api.mvc.Session) 

Также естьflash сфера - отличается отsession что он живет только по одному запросу и не подписан. Поэтому он чаще всего используется только для передачи сообщений об ошибках / inf.

УвидетьСессия и вспышка прицел док

Наконец, так как каждый шаблон является просто функцией Scala, вы также можете вызвать какое-то действие из вашего контроллера и получить данные сеанса

Когда я пытаюсь добавить @ (неявная сессия: play.api.mvc.Session), я получаю другую ошибку: & apos; = & gt; & apos; ожидаемый, но ')' найденный wynnch
Вы устанавливали какую-то сессию раньше на каком-либо контроллере? Проверьте куки для домена, они хранятся там.
Похоже, когда я поставил "(неявная сессия: play.api.mvc.Session)" рядом с параметрами он просто отображается на моей странице в виде HTML-текста. Как сделать так, чтобы игра читала так, как она должна быть? wynnch
Я попытался поставить & quot; (неявная сессия: play.api.mvc.Session) & quot; в начале моего шаблона рядом с @ (), где я передаю свои аргументы, но когда я пытаюсь вызвать @session, я получаю ОШИБКУ, не найденную: значение сеанса wynnch
-3

ur сессия в игровых шаблонах.

Попробуйте этот код - он работает в представлениях:

$session.session_variable_name;

Похожие вопросы