在Play框架中将字符串转换为Html

Ult*_*awk 11 html java casting playframework

我有一个接受Html对象的简单视图(Play!模板).我现在知道这个对象是play.twirl.api.Html(用Java编写).在我想要渲染的控制器中. return ok(layout.render("<h1> something </h1>")); 我正在玩Play!2.3.x版本

但我找不到从String到Html的有效转换.我已经尝试将String作为新Html对象的ctor参数进行转换和设置,但都失败了.我没有找到关于旋转api的文档.

这是我的问题: 如何在Play中将字符串转换为Html!(Java)没有更改模板?

bie*_*ior 11

你有两种可能性(无论如何你需要修改你的模板)

首先是在视图中转义HTML src:

public static Result foo() {
    return ok(foo.render("<h1>Foo</h1>"));
}
Run Code Online (Sandbox Code Playgroud)

查看foo.scala.html:

@(myHeader: String)

@Html(myHeader)
Run Code Online (Sandbox Code Playgroud)

第二是通过准备使用的Html参数:

import play.twirl.api.Html;

//....

public static Result bar() {
    return ok(bar.render(Html.apply("<h1>Bar</h1>")));
}
Run Code Online (Sandbox Code Playgroud)

视图 bar.scala.html

@(myHeader: Html)

@myHeader
Run Code Online (Sandbox Code Playgroud)

  • 我可以问你在哪里学到了这个吗?我似乎总是找不到这种东西.整个API的参考(完整)在哪里?它无处可寻,令人沮丧. (4认同)
  • 第一种方法(`@Html(param)`)来自Play的文档,第二种方法来自推论(提示:具有Play 2支持的IntelliJ +下载的资源有很大帮助);) (2认同)