我刚遇到Best way to add a "nothing selected" option to a selectOneMenu in JSF,我想知道如何(最好)实现p:selectOneMenu
通过ui:include
包含的内容,并获得一个选项来说明该组件是否要显示null(请选择...)条目:
<p:selectOneMenu id="#{id}"
value="#{value}"
converter="#{not empty converter ? converter : idEntityConverter}"
required="#{not empty required ? required : false}"
requiredMessage="#{not empty requiredMessage ? requiredMessage : commontext['message.required']}"
hideNoSelectionOption ????
rendered="#{commonf:isAllowed(not empty allowed ? allowed : true, benutzerRecht)}"
disabled="#{not empty disabled ? disabled : false}">
<f:selectItem itemValue="#{null}" itemLabel="#{commontext['common.action.pleaseSelect.label']}" noSelectionOption="true" />
<f:selectItems value="#{selectableEntities}"
var="ent"
itemValue="#{ent}"
itemLabel="#{not empty labelExpression ? labelExpression : ent}"
itemDisabled="#{not empty disabledExpression ? disabledExpression : false}" />
</p:selectOneMenu>
正如上述SO帖子所示,标准JSF h:selectOneMenu
方式是使用hideNoSelectionOption
中缺少的p:selectOneMenu
属性。
问:
由于f:selectItem
是标记处理程序,因此问题是:如何告诉上面的组件,如果需要该字段,则p:selectOneMenu
不会呈现noSelectionOption f:selectItem
(禁用这是不可取的)?
很久以前这个问题在PrimeFaces论坛中没有得到答案已经提出:https://forum.primefaces.org/viewtopic.php?t=8028