Class ListConverter

  • All Implemented Interfaces:
    Converter<Object>

    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.

    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