我有一个<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" />