У меня есть компонент <p:selectOneMenu>, который снабжается массивом экземпляров некоторого класса (скажем, ClassABC). В верхней части списка selectItems я хочу предоставить <f:selectItem>, который будет использоваться как параметр "Подстановочный знак/Любой", и это значение должно быть нулевым объектом.
Мне удалось сделать эту работу
<p:selectOneMenu  
        value="#{someBean.selectedInstance}"
        converter="classABCDConverter" >
    <!--  Wildcard Value -->
    <f:selectItem itemLabel=" * Any * " itemValue="" />
    <!-- Dynamic Data with Real Instances -->
    <f:selectItems 
        var="result"
        value="#{someBean.arrayOfInstancesOfClassABCD}"
        ....
         />
</p:selectOneMenu>
До сих пор это, похоже, работает, поскольку выбор элемента -any-select дает null Object для someBean.selectedInstance. Я полагаю, что itemValue="" делает конвертер возвратом нулевого объекта, поэтому он, вероятно, выглядит законным.
Но мне просто интересно, если это самый безопасный и эффективный способ.
EDIT: В качестве альтернативы я мог бы использовать noSelectionOption="true"
так, например, что было бы лучше от 2-го уровня:
<f:selectItem itemLabel=" * Any * " itemValue="" />
или
<f:selectItem itemLabel=" * Any * " noSelectionOption="true" />
