primefaces selectOneMenu não funciona quando deveria [duplicar]
Esta questão já tem uma resposta aqui:
Como os componentes UISelectOne e UISelectMany pré-selecionam os padrões em f: selectItems 1 respostaEstou perdendo dias com este problema estranho, eu verifiquei tudo, mas o meu selectOneMenu simplesmente não funciona e eu não consigo entender o porquê.
Então aqui estão meus códigos:
Meu 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>
Meu conversor:
@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() : "";
}
}
Ele funciona como esperado quando estou criando (ele passa o valor selecionado), mas quando tento editar a entidade, o tipo selecionado nunca é selecionado. Eu tentei com primefaces 3.1.1 e 3.2, mas não consigo obter o valor selecionado quando no modo de exibição / edição.
O que estou fazendo de errado?
Desde já, obrigado!