Texts
In general, a XML text is interpreted as a label component. For example,
<window>
Begin ${foo.whatever}
</window>
is equivalent to
<window>
<label value="Begin ${foo.whatever}"/>
</window>
Components consider the nested content as proerty
However, a component can be designed to accept the nested text as the value of a component property. In other words, a component designer could decide to make ZK Loader interpret the nest text as the value of a predefined property. For example, Html is one of this kind of components, and
<html>Begin ${foo.whatever}</html>
is equivalent to
<html content="Begin ${foo.whatever}"/>
It is designed to make it easy to specify multiple-line value, so it is usually used by particular components that requires the multi-line value.
Here is a list of components that interprets the XML text as a property's value.
Component Name | Property Name | Method |
---|---|---|
a | label | A.setLabel(String) |
button | label | Button.setLabel(String) |
comboitem | content | Comboitem.setContent(String) |
html | content | Html.setContent(String) |
label | value | Label.setValue(String) |
script | content | Script.setContent(String) |
style | content | Style.setContent(String) |
tab | label | Tab.setLabel(String) (since 5.0.7) |
The nested XML content
[since 6.0.0]
Since ZK 6, components that consider the text as a property's value will accept the XML fragment. For example,
<html>
<ol style="border: 1px solid blue">
<li>Apple</li>
<li>Orange</li>
</ol>
</html>
In other words, you don't have to escape the special characters (< and >) with CDATA
. In addition, you could leverage the full power of ZUML such as the zk element and the forEach attribute. For example,
<html>
<ol>
<li forEach="Apple, Orange">${each}</li>
</ol>
</html>
Note that the nested content is part of the ZUML page, so it must be a legal XML document.
Version History
Version | Date | Content |
---|---|---|
5.0.7 | April 2011 | Tab allow the XML text as the label. |
6.0.0 | September 2011 | The nested XML content was supported. |