Движок шаблонов в play 2.0 непосредственно взят из модуля scala play 1.0.Если вам все еще интересно, какие преимущества дает функциональный язык, такой как Scala, на картинке, то, безусловно, это одна из областей, где он сияет.
Демонстрация:
В синтаксисе scala тегэто не что иное, как вызов функции.Что интересно, фрагменты html рассматриваются как сами функции, позволяющие создавать наиболее мощные конструкции подстановки.
Давайте определим страницу html с именем mytag.scala.html
file: apps / views / mytags / mytag.scala.html
@(level:String = "error", index: Int)(body: (String) => Html)
@level match {
case "success" => {
<p class="success" index="@index">
@body("green")
</p>
}
case "warning" => {
<p class="warning" index="@index">
@body("orange")
</p>
}
case "error" => {
<p class="error" index="@index">
@body("red")
</p>
}
}
Приведенный выше тег принимает 3 параметра в 2 разных группах параметров:
- Уровень, представленный строкой (который по умолчанию равен «error»)
- Индекс
- Наконец, функция с именем body, которая принимает строковый параметр и возвращает HTML-код.Обратите внимание, что тело определяется в своей собственной группе параметров.это эквивалентно тому, что мы знаем в j2ee как jsp фрагмент .
Теперь давайте посмотрим, как мы можем использовать этот тег:
@import views.mytags._
@mytag("error",2) { color =>
Oops, something is <span style="color:@color">wrong</span>
}
Прежде чем мыможет использовать тег (или функцию), нам нужно сообщить Play, где он находится: это цель оператора import .Обратите внимание, что местоположение (путь) файла тега не имеет значения, пока вы настраиваете место импорта, как и в случае пакетов Java.
Следует за самим вызовом, что довольно просто.Однако обратите внимание, что мы передаем параметризованный HTML-фрагмент в тег.
Для получения дополнительной информации вы можете найти документацию по шаблону scala по этому URL
Play 2.0 в конечном итоге будетПриходите с собственной документацией.