С новой версией 2.4/2.5 Play Framework они продвигались дальше, вводя все и удаляя состояние серверов. play.Play.application()
теперь устарел. Однако мне нужно приложение в моем шаблоне (например, чтобы все поддерживаемые языки отображались на всех страницах с помощью play.i18n.Lang.availables(play.Play.application())
).Как добавить приложение в шаблон платформы Play Framework 2.5
Я знаю, что мог:
- Pass
play.Application
явно все мои шаблоны. - Добавьте неявный параметр в мой шаблон, например
@()(implicit app: play.Application)
. Однако в моем Java-проекте это не совсем неявно, я должен передавать его каждый раз, когда я создаю шаблон. - Create a Scala object providing the application implicitly. Однако это также требует устаревшего
play.api.Play.current
.
Как я могу ввести play.Application
в мой шаблон?
---- Обновление: ----
То, что я пытался до сих пор, я создал следующие настройки:
index.scala.html:
@(title: String)
@template(title) { //here is the play.Application obviously missing, however I don't want to pass it in every template - even worse in every Controller <-- this is the core of my question
Welcome to my page!
}
template.scala.html:
@(title: String)(content: Html)(implicit app: play.Application)
<html>
<head>
<title>@title</title>
</head>
<body>
<p>Is live? @app.isProd</p>
@content
</body>
</html>
функции контроллера:
public Result index() {
return ok(views.html.index.render("home"));
}
Что вам нужно делать с игрой. Применение? –
Я хотел бы перечислить все доступные Langs как 'new play.api.i18n.DefaultLangs (play.Play.application().configuration()). availables() 'для отображения языкового переключателя. – Itchy
Я поставил ответ как ваше требование. Если вы столкнетесь с какой-либо проблемой, сообщите мне об этом. :) –