primefaces selectOneMenu no funciona cuando debería [duplicar]
Esta pregunta ya tiene una respuesta aquí:
Cómo los componentes UISelectOne y UISelectMany preseleccionan los valores predeterminados en f: selectItems 1 respuestaEstoy perdiendo días con este extraño problema, revisé todo, pero mi selectOneMenu simplemente no funciona y no puedo entender por qué.
Así que aquí están mis códigos:
Mi jsf
<p:selectOneMenu id="entityType"
value="#{entityBean.entity.type}"
style="width:240px;"
converter="entityTypeConverter"
valueChangeListener="#{entityBean.entityTypeListener}"
required="true">
<f:selectItems value="#{entityBean.typeList}"
var="et"
itemLabel="#{et.name}"
itemValue="#{et}" />
</p:selectOneMenu>
Mi convertidor:
@FacesConverter("entityTypeConverter")
public class EntityTypeConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
Long id = Long.parseLong(value);
return EntityType.findEntityType(id);
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
return value instanceof EntityType ? ((EntityType) value).getId().toString() : "";
}
}
Funciona como se esperaba cuando estoy creando (pasa el valor seleccionado), pero cuando intento editar la entidad, el tipo seleccionado en realidad nunca se selecciona. Intenté con primefaces 3.1.1 y 3.2, pero no puedo obtener el valor seleccionado en el modo de visualización / edición.
¿Qué estoy haciendo mal?
¡Gracias por adelantado!