The omnifaces.ListConverter is intented for use in specialized selection components which doesn't
use SelectItems as the source for their selectable items, but work directly via a List of entities,
and therefore the SelectItemsConverter isn't usable on them.
This converter allows you to populate a selection component with complex Java objects and have Faces convert those
automatically back without the need to provide a custom converter which may need to do the job based on possibly
expensive service/DAO operations. This converter automatically converts based on the Object.toString() of the
selected item.
Usage
This converter is available by converter ID omnifaces.ListConverter and should be used in combination
with <o:converter> in order to be able to pass the List source to it, which it can use
for conversion. Here's a basic usage example with PrimeFaces <p:pickList>, which is one of the
few select components which doesn't use SelectItems as the source, but work directly via a List.
<p:pickList value="#{bean.dualListModel}" var="entity" itemValue="#{entity}" itemLabel="#{entity.someProperty}">
<o:converter converterId="omnifaces.ListConverter" list="#{bean.dualListModel.source}" />
</p:pickList>
Since OmniFaces 4.5 it's also available by <o:listConverter> tag.
<p:pickList value="#{bean.dualListModel}" var="entity" itemValue="#{entity}" itemLabel="#{entity.someProperty}">
<o:listConverter" list="#{bean.dualListModel.source}" />
</p:pickList>
Make sure that your entity has a good toString() implementation
For detail, refer the javadoc of SelectItemsConverter and substitute "SelectItemsConverter" by
"ListConverter" and "SelectItemsIndexConverter" by "ListIndexConverter".
- Since:
- 1.5
- Author:
- Arjan Tijms
-
Field Summary
Fields inherited from interface jakarta.faces.convert.Converter
DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE_PARAM_NAME -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetAsObject(FacesContext context, UIComponent component, String value) getAsString(FacesContext context, UIComponent component, Object value) voidSets the list of available items.
-
Constructor Details
-
ListConverter
public ListConverter()
-
-
Method Details
-
getAsObject
- Specified by:
getAsObjectin interfaceConverter<Object>
-
getAsString
- Specified by:
getAsStringin interfaceConverter<Object>
-
setList
Sets the list of available items.- Parameters:
list- The list of available items.
-