Class ListConverter

  • All Implemented Interfaces:

    public class ListConverter
    extends Object
    implements Converter<Object>

    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.


    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}" />

    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".

    Arjan Tijms