如何将原始html传递给Play框架视图?

时间:2013-02-07 03:49:37

标签: java playframework playframework-2.0

我正在尝试将简单的URL传递给播放框架应用中的视图,但是当作为字符串传递时,网址中的&会更改为&,这会导致网址不行。

如果我将参数更改为Html,即@(url: Srting)更改为@(url: Html),那么当我尝试将网址作为字符串传递给view.render()方法时,我会收到错误。

如何将网址转换为Html并将其传递给它?

2 个答案:

答案 0 :(得分:35)

要防止视图上的动态内容发生默认转义,您需要使用String函数包装@Html(String)

查看:

@(url: String)
<div class="myLink">
   Go to: @Html(url) <br>
   not to: @url
</div>

控制器:

public static Result displayLink(){
   return ok(view.render("<a href='http://stackoverflow.com/'>Stack Overflow</a>"));
}

有关详细信息,请参阅文档中的The template engine页面(特别是最底部的“转义”部分)。

答案 1 :(得分:5)

如果要呈现HTML内容而不是将其显示为原始文本,请返回内容.as("text/html")。例如:

WS.url("http://www.stackoverflow.com").get().map(resp => Ok(resp.body).as("text/html"))