I learned something interesting through trial-and-error yesterday:
If you define a set of templates where each successive template "extends" the previous template, the
apex:insert
tag in all previous templates are available for definition in the final implementing page.
For example, let's take take the following hierarchy of templates:
- SiteMasterTemplate
- SiteDepartmentTemplate--contains an
apex:composition
with template="SiteMasterTemplate"
- SiteProductTemplate--contains an
apex:composition
with template="SiteDepartmentTemplate"
Now, if we create a page called SiteSuperMotor that contains an apex:composition
with template="SiteProductTemplate"
, our page can actually use apex:define
that define apex:insert
elements in SiteMasterTemplate!
Furthermore, let's say that we have apex:insert
elements in both SiteDepartmentTemplate or SiteProductTemplate that share the same name
attribute as an apex:insert
in SiteMasterTemplate, then the SiteSuperMotor page's apex:define
would only define the apex:insert
in SiteMasterTemplate!