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