2014-09-08 5 views
6

Ho una vista semplice (modello Play!) Che accetta un oggetto HTML. Ora so che questo oggetto è play.twirl.api.Html (in Java). Nel controller voglio renderizzare. return ok(layout.render("<h1> something </h1>")); Sto usando Play! 2.3.xConversione di stringhe in Html in Play Framework

Ma non riesco a trovare una conversione valida da String a Html. Ho provato a trasmettere e impostare la stringa come argomento per un nuovo oggetto HTML ma tutto fallito. Non ho trovato alcuna documentazione sul twirl api.

Ecco la mia domanda: Come convertire una stringa in Html in Play! (Java) senza cambiare il modello?

risposta

6

avete due possibilità (comunque sia è necessario modificare il modello)

Prima fuoriesce src HTML all'interno della vista:

public static Result foo() { 
    return ok(foo.render("<h1>Foo</h1>")); 
} 

Vista foo.scala.html:

@(myHeader: String) 

@Html(myHeader) 

Secondo sta passando pronto per l'uso Html parametro:

import play.twirl.api.Html; 

//.... 

public static Result bar() { 
    return ok(bar.render(Html.apply("<h1>Bar</h1>"))); 
} 

View bar.scala.html

@(myHeader: Html) 

@myHeader 
+3

Posso chiederti dove hai imparato questo? Mi sembra sempre di non riuscire a trovare questo genere di cose. Dov'è un riferimento (completo) dell'intera API? Non si trova da nessuna parte e piuttosto frustrante. –

+0

Il primo approccio ('@Html (param)') proviene dai documenti di Play, il secondo dalla deduzione (suggerimento: IntelliJ con il supporto per Play 2 + le risorse scaricate aiuta molto);) – biesior