-
Available since OmniFaces 2.6
The omnifaces.ToCollectionConverter
is intented to convert submitted String
values to a Java collection based on a delimiter. Additionally, it trims any whitespace around each delimited submitted value. This is useful for among others comma separated value inputs.
Usage
This converter is available by converter ID omnifaces.ToCollectionConverter
. Just specify it in the converter
attribute of the component referring the Collection
property. For example:
<h:inputText value="#{bean.commaSeparatedValues}" converter="omnifaces.ToCollectionConverter" />
Since OmniFaces 4.5 it's also available by <o:toCollectionConverter>
tag.
<h:inputText value="#{bean.commaSeparatedValues}">
<o:toCollectionConverter />
</h:inputText>
The default delimiter is comma followed by space ,
and the default collection type is java.util.LinkedHashSet
for a Set
property and java.util.ArrayList
for anything else, and the default converter for each item will in getAsString()
be determined based on item type and in getAsObject()
be determined based on generic return type of the getter method.
The delimiter
must be a String
, the collectionType
must be a FQN and the itemConverter
can be anything which is acceptable by Faces.createConverter(Object)
.
<h:inputText value="#{bean.uniqueOrderedSemiColonSeparatedNumbers}">
<o:toCollectionConverter delimiter=";"
collectionType="java.util.TreeSet"
itemConverter="jakarta.faces.Integer" />
</h:inputText>