2012-12-31 12 views
5

Verwenden von Play 2 Ich realisiere eine einfache REST-API, die Ausgabe ist Klartext. Meine Vorlage sieht wie folgt aus:Entfernen Sie unnötige Zeilenumbrüche bei der Vorlagenausgabe?

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

In der Steuerung:

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

Dies ergibt die folgende Ausgabe:

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

Ich möchte von den ersten zwei leere Zeilen loszuwerden - ist das möglich?

Setzen Sie das für in der ersten Zeile entfernt eine der leeren Zeilen an der Spitze, aber man bleibt immer noch und für in der ersten Zeile macht die Vorlage schwer zu lesen): Danke für jeden Hinweis!

Antwort

4

Zunächst einmal, wenn Sie Klartext verwenden, sollten Sie txt-Vorlagen verwenden (bla.scala.txt). Sie legen auch automatisch den Inhaltstyp text/plain; charset=utf-8 fest.

den Inhalt zu trimmen, können Sie die gerenderte Inhalte direkt zurück:

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

Falls Sie HTML-Inhalt machen Sie diese müssen manuell ändern:

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

Perfekt, das behebt das Problem :-) Eclipse bot mir nach render (itemsMap) keine Methoden an, aber .body(). Trim() funktioniert nicht weniger :-) Vielen Dank! –

+0

@Marius Modifizieren von HTML-Körper bewirkt, dass es als 'Text/plain' zurück, so fügte ich ein Beispiel für die korrekte Rückgabe von 'text/html', hoffe, dass es Ihnen nichts ausmacht. – biesior

+0

Die Absicht war, 'text/plain' zurückzugeben, obwohl ... –

1

Wenn Sie Nur-Text-Ausgabe von einer Karte generieren, warum verwenden Sie überhaupt Ansichten? Sie bieten in Ihrem Fall keinen Vorteil.

Sie können die Renderfunktion in reinem Scala schreiben. So etwas wie

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

gut, in Fall sollte ich jemals zu XML oder etw. wechseln. die Formatierung ist meiner Meinung nach immer noch besser :-) –

+0

Wenn Sie zu XML wechseln, können Sie die XML-Unterstützung von Scala verwenden. Wenn Sie zu etwas anderem wechseln - wie JSON - können Sie eine JSON-Bibliothek verwenden. Play Templating ist gut für (Überraschung!) Vorlagen. –

Verwandte Themen