2

我有一个玩具 Play 框架项目。我的 Java 代码类似于:

    String r = "apple\nbanana";
    return ok(index.render(r));

我的 index.scala.html 类似于

@(r: String)

<table border="1" style="width:98%">
<tbody>
  <tr>
    <td>@r</td>
  </tr>
</tbody>
</table>

问题是,在显示的 html 中,换行符消失了。我想在 html 中得到两行但只得到一行。

我什至尝试将Java中的行更改为:

 String r = "apple<br>banana";

但是html仍然显示一行而不是两行,它只是显示

"apple<br>banana"

那么如何在 Twirl 中获得两行(使换行符起作用)?

4

1 回答 1

3

默认情况下,Twirl 会从动态内容中转义所有 HTML 标记。如果你想从一个变量中渲染标签,你可以使用@Html()。在你的情况下,它会是这样的:

@(r: String)

<table border="1" style="width:98%">
<tbody>
  <tr>
    <td>@Html(r)</td>
  </tr>
</tbody>
</table>

显然,换行符不起作用,因为浏览器在呈现 HTML 输出时会忽略空格。

于 2015-06-15T07:09:10.070 回答