我有一个链接可以在我的应用程序中的其中一个视图中打开网站,并且该网站必须依赖于application.conf中设置的网站。
立即查看:
class =“ nav-link” href =“ https://my.website.com” target =“ _ blank”>
这不起作用:
class =“ nav-link” href = current.configuration.getString(“ client.server.url”)target =“ _ blank”>
application.conf:
client.server.url =“ https://my.website.com”
任何帮助将不胜感激。
答案 0 :(得分:0)
要在“播放模板”中使用配置,您需要将其注入到Controller中,然后通过其构造函数将其提供给视图。
@Singleton
class FooController @Inject()(config:Configuration, cc: ControllerComponents) extends AbstractController(cc) {
def bar = Action {
Ok(views.html.baz(config))
}
}
然后查看baz.scala.html
@(config:play.api.Configuration)
<a class="nav-link" href="@config.getString("client.server.url")" target="_blank">LINK</a>
答案 1 :(得分:0)
我使用例如@{play.Play.application.configuration.getString("play.http.context")}
,但在2.6版中可能已弃用。只需将play.http.context
与您的配置参数交换即可。
答案 2 :(得分:0)
有多种方法可以使用Scala在Play中访问配置
以下内容适用于Play 2.7.x
选项1:带有DI
mat.otherControls = {'right':True, 'left':False}
# or if you want only one of the keys
mat.otherControls['right'] = False
选项2:不带DI
import play.api.Configuration
.... other imports ...
class MyActor @Inject()(config: Configuration) extends Actor {
println(config.get[String]("akka_actor_custom_dispatcher"))
println(config.get[String]("akka_actor_custom_dispatcher")) // w/o optional
println(config.getOptional[Int]("value_1").getOrElse(2)) // with optional
.....
}