custom-attributes

From Documentation


custom-attributes


Syntax:

<custom-attributes
    attr1="value1" [attr2="value2"...] 
    [scope="component|space|page|desktop|session|application"] 
    [composite="none|list|map"]
    [if="if-condition"] 
    [unless="unless-condition"]/>

It defines a set of custom attributes of the specified scope. You could specify as many as attributes you want. These attributes can be retrieved by the getAttribute method of the Component interface with the specified scope.

 <custom-attributes cd="${param.cd}" a.b="ab"/>

scope

[optional][Default: component or page depending on this parent]

Specifies the scope to which the custom attributes are associated. If not specified and enclosed with a component, the component is the default scope. If not specified and not enclosed with a component, the default scope is page (since 5.0.8). For example,

<zk>
	<custom-attributes a="A"/><!-- assign to page's attribute (since 5.0.8) -->
	<button label="show a" onClick='alert(page.getAttribute("a"))'/>
	<button label="show b" onClick='alert(self.getAttribute("b"))'>
		<custom-attributes b="B"/> <!-- assign to the button's attribute -->
	</button>
</zk>

composite

[Optional][Default: none]

Specifies the format of the value. It could be none, list or map.

By default, the value is assigned to the attribute directly after evaluating EL expressions, if any. For example, "apple, ${more}" is evaluated to "apple, orange", if more is "orange", and assigned to the attribute.

If you want to specify a list of values, you can specify the composite attribute with list as follows.

 <custom-attributes simple="apple, ${more}" composite="list"/>

Then, it is converted to a list with two elements. The first element is "apple" and the second "orange".

If you want to specify a map of values, you can specify the composite attribute with map as follows.

 <custom-attributes simple="juice=apple, flavor=${more}" composite="map"/>

Then, it is converted to a map with two entries. The first entry is ("juice", "apple") and the second ("flavor", "orange").

if

[Optional][Default: true]

Specifies the condition to evaluate this element. This element is ignored if the value specified to this attribute is evaluated to false.

unless

[Optional][Default: false]

Specifies the condition not to evaluate this element. This element is ignored if the value specified to this attribute is evaluated to true.

Version History

Version Date Content
5.0.8 July, 2011 The custom-attributes element is allowed to be placed under the page definition directly.



Last Update : 2022/01/19

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.