Font size:
Page Events
Tapestry component and page classes may implement optional listener interfaces. This interfaces allow the component (or page) to be notified when certain lifecycle events occur. Each interface consists of a single method.
It is merely necessary to implement the interface; the framework will automatically register the component (or page) to receive the notification. It is perfectly acceptible to implement multiple interfaces.
Interface | Invoked | Notes |
---|---|---|
PageAttachListener | When a page is first attached to the current request. After the page's persistent properties have been rolled back. | Set up the page's properties based on the current session state, possibly by pulling data from an application state object. |
PageValidateListener | When a page is activated (selected to render the reponse). Throw PageRedirectException to activate a different page. | Typically, checking the user's allowed access to a page, based on application-specific security rules. |
PageBeginRenderListener | Just before the page begins to render. This is the last chance to update persistent page properties. | |
PageEndRenderListener | At the end of the page render (even if an exception is thrown while the page renders). | |
PageDetachListener | As the page is detached from the request and returned to the shared page pool. | Final cleanups to "scrub" the page, remove any client-specific state, and otherwise return it to a pristine state. |
Note
Tapestry 3.0 defined a single PageRenderListener interface instead of
PageBeginRenderListener and PageEndRenderListener. This is still supported in 4.0 (it
has been redefined as extending the other two interfaces), but will likely be removed
in a future release.