Tinha usado um outro tópico pra colocar a minha quastão mas como finalizaram o outro estou criando este:
fiz um selectOneMenu ligado diretamente com uma Entity do Hibernate exemplo:
<h:selectOneMenu value="#{cadPessoaMB.registro.municipio}" id="cmbMunicipio">
<f:selectItems value="#{cadPessoaMB.municipios}" var="m" itemValue="#{m.id}" itemLabel="#{m.nome}"/>
</h:selectOneMenu>
O value aponta para um objeto do tipo Municipio que é uma entity.
Então fiz um conversor:
@FacesConverter(forClass=Municipio.class)
public class MunicipioConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String valor) {
if(valor == null || valor.equals("null") || valor.length()==0)return null;
return new MunicipioDao().findById(Long.valueOf(valor));
}
public String getAsString(FacesContext context, UIComponent component, Object object) {
if(object == null)return null;
return ((Municipio)object).getId().toString();
}
}
Ja debuguei o conversor e ele passa certinho e também devolve o objeto correto no getAsObject.
Porém, quando eu dou o Submit no form, ele da um erro de validação. Eu preciso implementar um validator também?