2012-12-31 15 views
5

Utilizzo di Play 2 Sto realizzando una semplice API REST, l'output è di testo normale. Il mio modello è simile al seguente:Rimuovere interruzioni di riga non necessarie sull'output del modello?

@(items: Map[String,String]) 
@for((key, value) <- items) { 
@value 
@key 
} 

Nel controllore:

return ok(views.html.bla.render(itemsMap)).as("text/plain"); 

Questo dà il seguente risultato:

(empty line) 
(empty line) 
value 
key 
(empty line) 
value 
key 

voglio sbarazzarsi delle prime 2 righe vuote - è quello possibile?

Mettere il per nella prima riga rimuove una delle righe vuote nella parte superiore, tuttavia ne rimane ancora una e per la prima riga rende difficile la lettura del modello): Grazie per qualsiasi suggerimento!

risposta

4

Prima di tutto, se si utilizza testo normale, si dovrebbe usare txt modelli (bla.scala.txt). Inoltre impostano automaticamente il tipo di contenuto text/plain; charset=utf-8.

Per tagliare il contenuto, è possibile restituire il contenuto visualizzato direttamente:

return ok(views.txt.bla.render(itemsMap).body().trim()); 

Nel caso in cui si desidera eseguire il rendering di contenuti HTML avresti bisogno di modificare manualmente:

return ok(views.html.ble.render().body().trim()).as("text/html; charset=utf-8"); 
+0

Perfetto, questo risolve il problema :-) Eclipse non mi ha offerto alcun metodo dopo il rendering (itemsMap), ma .body(). Trim() non funziona meno :-) Grazie mille! –

+0

@Marius che modifica il corpo di html lo restituisce come 'text/plain' quindi ho aggiunto un esempio per il corretto ritorno di' text/html', spero non ti dispiaccia. – biesior

+0

L'intenzione era di restituire 'text/plain', sebbene ... –

1

Se si genera un output di testo normale da una mappa, perché si utilizzano le viste? Non forniscono alcun vantaggio nel tuo caso.

È possibile scrivere la funzione di rendering in Scala puro. Qualcosa di simile

items.map{ case (k,v) => v + '\n' + k}.mkString('\n') 
+0

bene, in caso dovrei mai passare a XML o sth. così, avere la roba di formattazione generata è ancora meglio a mio parere :-) –

+0

Se si passa a XML, è possibile utilizzare il supporto XML di Scala. Se passi a qualcos'altro, come JSON, puoi usare una libreria JSON. Il template di Play è buono per i modelli (sorpresa!). –

Problemi correlati