Укажите значение подстановочного знака f:selectItem в p:selectOneMenu с динамическими данными и конвертером.
У меня есть <p:selectOneMenu>
компонент, который снабжается массивом экземпляров некоторого класса (скажем, ClassABC). В верхней части списка selectItems я хочу предоставить <f:selectItem>
это будет использоваться в качестве символа подстановки /Any, и его значение должно быть нулевым объектом.
Мне удалось сделать эту работу как
<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 дает нулевой объект someBean.selectedInstance
, я думаю что itemValue=""
заставляет конвертер возвращать нулевой объект, поэтому он, вероятно, выглядит корректно.
Но мне просто любопытно, если это самый безопасный и эффективный способ.
РЕДАКТИРОВАТЬ: В качестве альтернативы я мог бы использовать noSelectionOption="true"
так, например, что было бы лучше из 2 ниже:
<f:selectItem itemLabel=" * Any * " itemValue="" />
или же
<f:selectItem itemLabel=" * Any * " noSelectionOption="true" />