Tapestry/Шаблоны и классы шаблонов
Ключевой момент в разделении логики и представления заключается в разделении шаблонов страниц и файлов классов. Шаблон определяет структуру и внешний вид страницы. Шаблоны в Tapestry оформляются в виде файлов name.tml (где TML — Tapestry Markup Language), которым соответствуют классы name.java, которые представляют собой POJO (англ. Plain Old Java Objects) классы, то есть ничего не наследуют и реализуют минимальный интерфейс. Соответственно имя класса и имя шаблона должны совпадать. Шаблоны — это XML (XHTML) файлы, расширяющие HTML пространством имен, пространством Tapestry. Ниже приведен пример шаблона из стандартного ознакомительного приложения Quickstart:
<html t:type="layout" title="О программе"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
xmlns:p="tapestry:parameter">
<p>О программе ...</p>
</html>
Имена файлов в Tapestry чувствительны к регистру (англ. case-sensitive). Таким образом регистры классов и шаблонов должны совпадать. |
Таким образом любой элемент, который начинается с <t: относится к пространсту имен Tapestry. Любой элемент, который не входит в пространство имен Tapestry будет выведен в браузер.
Расширения позволяют использовать свойства в соответствующих страницах или компонентах. Расширения начинаются с «${» и заканчиваются символом «}»
<h3>Account Name:</h3>
<p class=”${accountClass}”>${account}</p>
Расширения не допустимы внутри дескрипторов или в именах атрибутов дескрипторов. Расширения могут быть использованы как текст или как значения атрибутов. |
Расширения как и свойства могут предворяться префиксами для доступа к локализованным сообщениям (messages).
Блоки
[править]В любом месте шаблона можно использовать блоки:
<t:block id=”nav”> ... </t:block>
Блоки по умолчанию не отображаются, но их можно отобразить по событию (требованию).