Укажите подстановочный знак f: selectItem значение в p: selectOneMenu с динамическими данными и конвертером
У меня есть компонент <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" />