Tapestry/Основные понятия: различия между версиями

Содержимое удалено Содержимое добавлено
дополнение
дополнение
Строка 1:
== Страницы ==
 
Страницы ({{lang-en|pages}}) — под страницей в Tapestry понимают пару файлов: шаблон ''name.tml'' и контроллер страницы ''name.java''. Все страницы запускаются в [[#Контекст|контексте]] ''OnActivate''. Таким образом все переменные запроса передаются в контекстный метод с автоматическим приведением типов. К переменным [[w:CGI|CGI]] можно получить доступ через сервис ''Request''.
 
Событие ''passivate'' антагонист ''activate'', т.е. в контексте <code>onPassivate()</code> можно возвращать параметры в строку запроса.
Когда пользователь запрашивает страницу происходит событие activate, которое можно перехватить создав в странице метод onActivate(), либо метод с произвольным именем и аннотацией @OnEvent("activate"). Если для страницы параметры передаются в URL, то в метод добавляется сигнатура соответствующая принимаемым параметрам. Например, на запрос /admin/form/article/123 создаётся метод onActivate(long articleId) (приведение типа происходит автоматически). Если количество параметров неизвестно, то в сигнатуре объявляется Object[], либо специальный класс EventContext. Параметры типа /admin/form/article/?param1=some1&param2=some2 не обрабатываются, но к ним всегда можно получить доступ через сервис Request. Для сохранения параметров в URL нужно перехватить событие passivate, с возвращением параметров полученных на activate.
 
== Контекст ==
Строка 9:
Методы могут запускаться в разных режимах с разными переменными окружения — это и есть контекст выполнения метода.
 
Для выбора контекста в Tapestry используются специальные директивы (аннотации), которые устанавливаются перед определением метода и начинаются с символа ''@'':
<source lang="java">
public class Category {
Строка 20:
}
</source>
 
Также можно напримую указать обработчик контекста, как обработчик события:
<source lang="Java">onActivate() {
// Обрабатываем
}</source>
 
 
== Слушатели ==