Boa Noite.
Estou tendo um problema com a conversão de Objetos em um h:selectOneMenu.
A situação é a seguinte: tenho uma lista de objetos que está sendo mostrada no meu selectOneMenu:
<h:selectOneMenu value="#{cidadeMB.cidade.estado}" id="estado">
<f:selectItems value="#{cidadeMB.listEstados}"
var="estado"
itemLabel="#{estado.estado}"
itemValue="#{estado.uf}" />
</h:selectOneMenu>
e quando chamo minha ação para salvar ocorre o erro:
Erro de conversão ao definir o valor ‘RS’ para ‘null Converter’.
Desculpe a ignorância mas sou iniciante e nunca usei este componente.
Obrigado.
tem como vc passar a classe pra dar uma olhada!
possivelmente value do selectOneMenu esta errado!!
Pela classe fica mais facil pra ter ctz!!
O null converter quer dizer que para não existe conversor associado, ficaria assim:
<h:selectOneMenu value="#{cidadeMB.cidade.estado}" id="estado" converter="ufConverter" >
<f:selectItems value="#{cidadeMB.listEstados}"
var="estado"
itemLabel="#{estado.estado}"
itemValue="#{estado.uf}" />
</h:selectOneMenu>
Assim basta criar o converter de uf. Se você não tiver feito um ainda da um pesquisada.
Consegui resolver fazendo um converter.
Segue a classe:
public class EstadoConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return EstadoBC.buscar(value);
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
return ((Estado) value).toString();
}
}
Mas não tem outra forma de fazer? Somente com converter?
Valeu pela ajuda.
até existem outras formas de se fazer,
porém pra mim são mais POGS do que soluções;
a forma masi elegante de se fazer isso seria com conveter!