在Play 2.0视图中转义JavaScript字符串?

Ben*_*lts 11 playframework-2.0

是否有一种简单的方法来转义字符串以在Play 2.0的视图中用作JavaScript字符串?例如,这是一个简单的视图,在onclick中创建一个带有确认框的链接:

@(text:String,link:Call,message:String)
<a href="@link" onclick="return confirm('@message');">@text</a>
Run Code Online (Sandbox Code Playgroud)

如果消息中有换行符或单引号,则会失败.最好的方法是什么?

Jul*_*Foy 13

您可以使用Apache Commons Lang:

@(text:String, link:Call, message:String)

@import org.apache.commons.lang3.StringEscapeUtils.escapeEcmaScript
<a href="@link" onclick="return confirm('@escapeEcmaScript(message)');">@text</a>
Run Code Online (Sandbox Code Playgroud)

您可以通过将模板添加到project/Build.scala文件中来避免模板中的显式导入:

templatesImport += "org.apache.commons.lang3.StringEscapeUtils.escapeEcmaScript"
Run Code Online (Sandbox Code Playgroud)