删除模板输出上不必要的换行符?

时间:2012-12-31 15:13:41

标签: java templates rest playframework-2.0

使用Play 2我实现了一个简单的REST API,输出是纯文本。我的模板如下所示:

@(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放在第一行会删除顶部的空行之一,但是仍有一行仍然存在,而在第一行则难以阅读模板):感谢任何提示!

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分:1)

如果要从地图生成纯文本输出,为什么要使用视图呢?它们不会为您提供任何好处。

您可以在纯Scala中编写渲染函数。像

这样的东西
items.map{ case (k,v) => v + '\n' + k}.mkString('\n')