Jsf p:在编辑模式下选择一个菜单默认值

Jsf p:在编辑模式下选择一个菜单默认值,jsf,primefaces,Jsf,Primefaces,我使用的是primefaces,有一个datatable,它有两列。一列是OutputExt,另一列是selectOneMenu。我制作了可编辑的SelectOne菜单。事实上,这是可行的,但不合适。selectItem的默认值显示为空,但ı希望它将第一个值显示为默认值。我怎样才能做到 <p:dataTable id="cellEditingTable" var="message" value="#{messageTableController.menuList}" pag

我使用的是primefaces,有一个datatable,它有两列。一列是OutputExt,另一列是selectOneMenu。我制作了可编辑的SelectOne菜单。事实上,这是可行的,但不合适。selectItem的默认值显示为空,但ı希望它将第一个值显示为默认值。我怎样才能做到

    <p:dataTable id="cellEditingTable" var="message"
    value="#{messageTableController.menuList}" paginator="true"
    paginatorPosition="bottom" editable="true" editMode="cell">
        <p:column>
            <p:selectOneMenu id="menu" value="#{messageTableController.selected}"
                style="width:96%" effect="fold" editable="true">
                <f:selectItem itemLabel="#{message.assign}"
                    itemValue="#{message.assign}" />
                <f:selectItem itemLabel="#{message.combo}"
                    itemValue="#{message.combo}" />
            </p:selectOneMenu>
        </p:column>
    </p:dataTable>

我将selectOneMenu的值更改为first ItemValue。因此,当运行该程序时,first ItemValue将选中的项作为默认项

    <p:selectOneMenu id="menu" value="#{message.assign}"
        style="width:97%" editable="true">
        <f:selectItem itemLabel="#{message.assign}"
            itemValue="#{message.assign}" />
        <f:selectItem itemLabel="#{message.combo}"
            itemValue="#{message.combo}" />
    </p:selectOneMenu>

将NoSelectOption添加到第一个selectItem

<f:selectItem itemLabel="#{message.assign}"
                    itemValue="#{message.assign}" noSelectionOption="true" />


回答这个问题可能会迟到。
如果使用
editable=“true”
,则在浏览中渲染时,它将渲染为文本框

删除
editable=“true”
,然后选择默认值

如果要在SelectOne菜单中提供筛选选项,请使用
filter=“true”


基于“可编辑”属性,它将在浏览器中渲染,如下所示。

当我使用noSelectionOptios=“true”时,它只返回“s”作为组合框的第一项。
<p:selectOneMenu id="menu" value="#{message.assign}"
    style="width:97%" filter="true">
    <f:selectItem itemLabel="#{message.assign}"
        itemValue="#{message.assign}" />
    <f:selectItem itemLabel="#{message.combo}"
        itemValue="#{message.combo}" />
</p:selectOneMenu>