Jsf 如何将Primefaces与selectonemenu和object一起使用

Jsf 如何将Primefaces与selectonemenu和object一起使用,jsf,primefaces,Jsf,Primefaces,我有一个SelectOne菜单,其中包含SelectItem类型的对象列表, 如何将SelectOne菜单与其中的对象列表一起使用 单单元格编辑。 呈现页面时加载数据,但要更改sucursales,在单元格编辑中显示以下util.SucursalUtil@52d68a,如何显示适当的值 <p:column headerText="Sucursal" style="width:25%"> <p:cellEditor> <f:facet name

我有一个SelectOne菜单,其中包含SelectItem类型的对象列表, 如何将SelectOne菜单与其中的对象列表一起使用 单单元格编辑。 呈现页面时加载数据,但要更改sucursales,在单元格编辑中显示以下util.SucursalUtil@52d68a,如何显示适当的值

<p:column headerText="Sucursal" style="width:25%">
    <p:cellEditor>
        <f:facet name="output">
            <h:outputText value="#{car.nombreSucursal}" />
        </f:facet>
        <f:facet name="input">
            <h:selectOneMenu value="#{car.nombreSucursal}" style="width:100%">
            <f:selectItems value="#{clientesMB.itemsSucursal}" var="man" itemLabel="#{man}"
                           itemValue="#{man}" />
            </h:selectOneMenu>
        </f:facet>
    </p:cellEditor>
</p:column>


问题是,当更改值第一次在表中显示对象的id(一个数字)时,不显示标签

看起来
itemscursal
不是
List
对象。既然您有了它,您必须重写此类中的
toString()
方法才能正确显示。顺便说一下,我建议不要使用
var=“man”itemValue=“#{man}”
,因为
字符串的结果可能不是识别所选值的最佳方法。好的,谢谢。。。它正在工作。你想更新你的问题并添加新代码并描述新问题吗?
<p:column headerText="Sucursal" style="width:25%">  
                                <p:cellEditor>  
                                    <f:facet name="output"><h:outputText value="#{car.nombreSucursal}" /></f:facet>  
                                    <f:facet name="input">  
                                        <h:selectOneMenu value="#{car.sucBanc}" style="width:100%" converter="sucursalConverter">  
                                            <f:selectItems value="#{clientesMB.itemsSucursal}"/>  
                                        </h:selectOneMenu>  
                                    </f:facet>  
                                </p:cellEditor>  
                            </p:column>  
 <p:ajax event="cellEdit" listener="#{clientesMB.modiCell}" update=":form2:formgen" />  
 public void modiCell(CellEditEvent event) throws Exception {
    try {
        Object oldValue = event.getOldValue();
        Object newValue = event.getNewValue();
        //SucursalUtnewValueil c = (SucursalUtil) event.getNewValue();
        int row = event.getRowIndex();
        this.empClienteEditar.getCuentasBancarias().get(row).setNombreSucursal(newValue.toString());
        if (newValue != null && !newValue.equals(oldValue)) {
            FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Cell Changed", "Old: " + oldValue + row + ", New:" + newValue);
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
    } catch (Exception e) {
        JsfUtil.addErrorMessage(e, "Error: modiCliente() " + e.getMessage());

    }
}