...
The rendering of each component is divided into a number of phases, illustrated below.
Each of the orange phases (SetupRender, BeginRender, BeforeRenderBody, etc.) corresponds to an annotation you may place on one or more methods of your class. The annotation directs Tapestry to invoke your method as part of that phase.
...
All Render phase methods are optional; a default behavior is associated with each phase.
Annotation | Method Name | When Called |
---|---|---|
setupRender() | When initial setup actions, if any, are needed | |
beginRender() | When Tapestry is ready for the component's start tag, if any, to be rendered | |
beforeRenderTemplate() | Before Tapestry renders the component's template, if any | |
beforeRenderBody() | Before Tapestry renders the body of the component, if any | |
afterRenderBody() | After Tapestry renders the body of the component, if any, but before the rest of the component's template is rendered | |
afterRenderTemplate() | After Tapestry finishes rendering the component's template, if any | |
afterRender() | After Tapestry has finished rendering both the template and body of the component | |
cleanupRender() | When final cleanup actions, if any, are needed |
The large number of phases reflects the need for precise control of components from component mixins. Several of the phases exist almost exclusively for mixins.
...