Укажите значение подстановочного знака 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" />

0 ответов

Другие вопросы по тегам