在控制器中,我们创建了一个字符串,在呈现页面时,该字符串将被解释为Html。每当字符串包含以“@”开头的scala / twirl代码时,就会导致页面无法正确呈现它。
控制器:
// render method
return ok(Html.apply(testButton()), testForm);
public String testButton() throws SQLException {
result = "<input type='radio' id='@TestForm(\"TestID\").id'
name='@TestForm(\"TestID\").name' value='5' >" + "Test";
return result;
}
Scala.html:
@(buttons: Html)(TestForm: Form[TestForm])
@buttons
应该如何看待:
<input type='radio' id='TestID' name='TestID' value=5 >test
外观如何:
<input type='radio' id='@TestForm("TestID").id' name='@TestForm("TestID").name' value='5' >test
我们还用其他例子对此进行了测试。问题实际上似乎是@
。也许解析器解析一次网站,用我们的代码替换@button
,但不解析它。我们还尝试使用不同的方法(@
,@@
,无\@
)转义@
,但之后总是以纯文本结尾。
将@
置于另一个@
内进行渲染的最简单方法是什么?
答案 0 :(得分:3)
您无法在控制器中执行此操作。 b=1
在编译时由Twirl编译器解析,但您尝试在运行时引入它。它永远不会奏效。即使你可以让它工作,也不是一个好主意。它通过使用表示代码混淆控制器代码来打破MVC范例。
这应该是另一个类似于:
的Twirl视图@