Мне нужно напечатать некоторый необработанный HTML в шаблоне Scala, используя новейшие Play Framework 2.1.1 Сообщения, переменные, простые для циклов и т. Д. Все работает нормально. Но что, если мне нужно сделать некоторую логику и распечатать необработанный HTML-код в шаблоне?Печать HTML в шаблоне Scala
@{
val courts = venue.getCourts()
val totalWidth : Int = 920
.. some other initialization variables/values
var output : String = ""
for(court <- courts) {
output += "<p>SomeComplexString</p>"
}
output
}
В этой функции случай @{}
возвращает output
но HTML экранируются, а также это не так практично (комбинируя все в одной output
переменной перед возвращением).
Если я ставлю что-то вроде
for(court <- courts) {
println("<p>SomeComplexString</p>")
}
это не работает (я не получаю ошибки компиляции, но нет ничего на выходе).
я мог бы сделать
@for(court <- courts) {
<p>SomeComplexString</p>
}
но courts
бы вне сферы (пусть только сказать, что я не могу определить courts
в качестве переменной шаблона в начале).
Какое решение?
правильный ответ, но избегайте использования '@Html()' из-за проблем с безопасностью. – adis
@adis Не могли бы вы указать проблемы безопасности @Html()? – user1943442
@ user1943442 сценарий инъекции, если вы просто используете '@ Html' вне пользовательского ввода. Читайте еще несколько: http://wonko.com/post/html-escaping – adis