0

我有一个<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- 选择项目,给一个空对象someBean.selectedInstance。我猜这itemValue=""会使转换器返回一个空对象,所以它可能看起来合法。

但我只是好奇这是否是最安全、最有效的方法。

编辑:或者,我可以使用noSelectionOption="true" 这样,例如,从下面的 2 开始会更好:

<f:selectItem itemLabel=" * Any * " itemValue="" />

或者

<f:selectItem itemLabel=" * Any * " noSelectionOption="true" />
4

0 回答 0