5

Play2を使用して単純なRESTAPIを実現しているので、出力はプレーンテキストです。私のテンプレートは次のようになります。

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

コントローラ内:

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

これにより、次の出力が得られます。

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

最初の2つの空の行を削除したい-それは可能ですか?

最初の行にforを入れると、上部の空の行の1つが削除されますが、まだ1つ残っており、最初の行にforを入れると、テンプレートが読みにくくなります):ヒントをありがとうございます。

4

2 に答える 2

4

まず、プレーンテキストを使用する場合は、txtテンプレート(bla.scala.txt)を使用する必要があります。また、text/plain; charset=utf-8 コンテンツタイプを自動的に設定します。

コンテンツをトリミングするには、レンダリングされたコンテンツを直接返すことができます。

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

HTMLコンテンツをレンダリングする場合は、これを手動で変更する必要があります。

return ok(views.html.ble.render().body().trim()).as("text/html; charset=utf-8");
于 2012-12-31T15:45:31.527 に答える
1

マップからプレーンテキスト出力を生成している場合、なぜビューを使用するのですか?彼らはあなたの場合には何の利益も提供しません。

レンダリング関数は純粋なScalaで書くことができます。何かのようなもの

items.map{ case (k,v) => v + '\n' + k}.mkString('\n')
于 2012-12-31T15:39:58.073 に答える