Исключить строку 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"