我有一个selectOneMenu,其中包含SelectItem类型的对象列表, 如何将selectOneMenu与其中的对象列表一起使用 一个单元格编辑。 当渲染页面加载数据但是要更改Sucursalesin时,单元格编辑会显示以下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>
private List<SelectItem> itemsSucursal = new LinkedList<SelectItem>();
现在代码看起来像这样
<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());
}
}
那个'问题,当第一次在表中显示更改值时,对象的id(一个数字),不要显示标签......