| Listbox is a JSF component implementation for
org.zkoss.zul.Listbox ,
This class also implements
javax.faces.component.EditableValueHolder .
That means you can use bidirection value binding, immediate, required, converter, validator, valueChangeListener features on this component.
To use those features, you must decleare a namespace of "http://java.sun.com/jsf/core"
with a prefix (say 'f' in below example), add attribute of those feature with this namespace
(for example f:required="true")in you jsf page.
For more detail of EditableValueHolder features of JSF, you can refer to http://java.sun.com/products/jsp/
You must assign a value on each listitem, so that, after user select listitem and submitting,
listbox will decode the request parameter and set back the submitted value to your bean.
When listbox set multiple to false(single selection), then
the default binding value of this component is
java.lang.String .
When listbox set multiple ot true(multiple selection, then
the default binding value of this component is
java.lang.String array.
Example of use bidirection value binding:
<z:listbox id="role1" f:value="#{yourBean.value}">
<z:listitem value="1" label="Determine need" />
<z:listitem value="2" label="Evaluate products/sesrvices" />
<z:listitem value="3" label="Recommend products/sesrvices" />
<z:listitem value="4" label="Implement products/sesrvices" />
<z:listitem value="5" label="Techinical decision maker" />
<z:listitem value="6" label="Financial decision maker" />
</z:listbox>
Example of using immediate:
<z:listbox f:immediate="true" />
Example of using required:
<z:listbox f:required="true" />
Example of using converter:
<z:listbox f:converter="yourBean.convertMethod"/>
or
<z:listbox >
<f:converter converterId="yourConverterId"/>
</z:listbox>
Example of using validator:
<z:listbox f:validator="yourBean.validateMethod"/>
or
<z:listbox >
<f:validator validatorId="yourValidatorId"/>
</z:listbox>
Example of using converter:
<z:listbox >
<f:valueChangeListener type="your.ValueChangeListener"/>
</z:listbox>
In some application server which doesn't support attribute namespace you can use attribute prefix 'f_' to replace attribute namespace
For example,
<z:listbox f_value="#{yourBean.value}" />
This component should be declared nested under
org.zkoss.jsf.zul.Page .
To know more ZK component features you can refer to http://www.zkoss.org/
author: Dennis.Chen See Also: org.zkoss.zul.Listbox See Also: javax.faces.component.EditableValueHolder |