max_mara
@max_mara

Play Framework глобальное хранилище в запросе?

Есть ли в PlayFramework глобальное хранилище, в котором можно хранить состояния боковых панелей, bread crumbs, etc? Что-то уникальное для каждого запроса, но то, к чему можно получить доступ и из контроллера и из модели, и из вьюхи?
  • Вопрос задан
  • 3481 просмотр
Решения вопроса 1
saaivs
@saaivs
Верно. По большому счету scala-шаблоны — это обычные классы (в итоге), и соответственно вы можете в них делать почти все, что доступно в языке учитывая лишь ограничения синтаксиса.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
saaivs
@saaivs
Возможно, вы имеете ввиду Session Scope и Flash Scope. Подробнее
Ответ написан
xolvo
@xolvo

Session Scope не предназначен для хранения больших объектов. Кроме того, эта самая session действует не на время запроса, а на время работы клиента с приложением. Flash используют для хранения данных между запросами. Такое временное хранилище на случай, если из одного запроса нужно передать данные в другой. Например во время редиректа.

Я бы использовал такую штуку, как play.mvc.Http.Context а в ней есть поле args. Оно как раз предназначено для хранения данных, которые нужны именно для текущего запроса. В контроллере можно использовать так:


ctx().args.put("key", 1);
ctx().args.get("key");

А в модели так:


Context.current().args.get("key");

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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