2011-10-10 10 views
9

Come accedere al valore application.name da conf/application.conf in una vista?Valore di configurazione di Play Framework in vista

+0

Eventuali duplicati di [accesso Play! 2.0 variabili di configurazione in application.conf?] (Http://stackoverflow.com/questions/9857907/access-play-2-0-configuration-variables-in-application-conf) – 030

risposta

16

È possibile utilizzare seguente esempio di codice per farlo:

${play.configuration['application.name']} 

vedere anche http://groups.google.com/group/play-framework/browse_thread/thread/1412ca8fc3edd22f

+0

grazie. Era proprio quello di cui avevo bisogno. – Ryan

+1

Per la cronaca: le cose sono cambiate con Play 2.0, questo non funzionerà più. Vedi http://stackoverflow.com/questions/9857907/access-play-2-0-configuration-variables-in-application-conf per una soluzione Play 2.0. –

3

Aggiornamento per Play 2 ...

In 2.3.x gioco Scala, per leggere un valore da conf/application.conf, è possibile effettuare le seguenti operazioni:

import play.api.Play.current 
... 
current.configuration.getString("application.name") 
4

Aggiornamento per P posare 2.5.x

In Play Scala 2.5.x, il metodo corrente nell'oggetto Play è deprecato. Per leggere un valore da conf/application.conf, è necessario utilizzare invece DI.

Inject play.api.Configuration nel controller:

class MyController @Inject() (val configuration: play.api.Configuration) extends Controller

Quindi, è possibile utilizzare direttamente configuration nei vostri metodi:

def sayMyName = Action { request => 
    Ok("Your name is " + configuration.getString("application.name")) 
} 

È inoltre possibile utilizzare configuration nel modello Twirl vista:

def sayMyNameUsingView = Action { request => 
    implicit lazy val config = configuration 
    Ok(views.html.index()) 
} 

Invia il configuration iniettato come implicita alla data index.scala.html

@()(implicit val configuration:play.api.Configuration) 
<html> 
    <body> 
    <h1>Your name is @configuration.getString("application.name")</h1> 
    </body> 
</html>