Templating"
From Documentation
m (Created page with '{{ZKDevelopersReferencePageHeader}} {{ZKDevelopersReferenceHeadingToc}} {{ZKDevelopersReferencePageFooter}}') |
m |
||
Line 1: | Line 1: | ||
{{ZKDevelopersReferencePageHeader}} | {{ZKDevelopersReferencePageHeader}} | ||
+ | |||
+ | Templating is a technique that allows developers to define UI fragments, and how to assemble them into a complete UI at runtime. With ZK, it can be done by use of annotations and composer (or initators, <javadoc type="interface">org.zkoss.zk.ui.utilInitiator</javadoc>). | ||
+ | |||
+ | The basic idea is to specify the name of a fragment as [[ZK Developer's Reference/Annotations|annotations]] in a ZUML document that shall represent a complete UI, and a composer that is capable to parse annotations and replace them with the fragment. For example, | ||
+ | |||
+ | <source lang="xml"> | ||
+ | <div apply="foo.MyTemplateManager"> | ||
+ | <include src="@{header}"/><!-- you could use any component as long as your manager knows how to handle it --> | ||
+ | <include src="@{content}"/> | ||
+ | <include src="@{footer}"/> | ||
+ | </div> | ||
+ | </source> | ||
+ | |||
+ | Here is the implementation that ZK supports by default. You could implement your own, if it does not fulfill your requirement. | ||
+ | |||
{{ZKDevelopersReferenceHeadingToc}} | {{ZKDevelopersReferenceHeadingToc}} | ||
{{ZKDevelopersReferencePageFooter}} | {{ZKDevelopersReferencePageFooter}} |
Revision as of 04:26, 10 January 2011
Templating is a technique that allows developers to define UI fragments, and how to assemble them into a complete UI at runtime. With ZK, it can be done by use of annotations and composer (or initators, Initiator).
The basic idea is to specify the name of a fragment as annotations in a ZUML document that shall represent a complete UI, and a composer that is capable to parse annotations and replace them with the fragment. For example,
<div apply="foo.MyTemplateManager">
<include src="@{header}"/><!-- you could use any component as long as your manager knows how to handle it -->
<include src="@{content}"/>
<include src="@{footer}"/>
</div>
Here is the implementation that ZK supports by default. You could implement your own, if it does not fulfill your requirement.