Исключить строку JavaScript в Play 2.0?

Есть ли простой способ избежать строки, которая будет использоваться в качестве строки JavaScript в представлении в Play 2.0? Например, вот простой вид, который создает ссылку с полем подтверждения в onclick:

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

Это не удастся, если в сообщении есть новые строки или одинарные кавычки. Какой лучший способ сделать это?

Ответ 1

Вы можете использовать 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>

Вы можете избежать явного импорта в шаблоне, добавив его в свой project/Build.scala файл:

templatesImport += "org.apache.commons.lang3.StringEscapeUtils.escapeEcmaScript"