Foi só um lapso na hora de escrever, mas o problema persiste. Eu fiz algumas alterações com base em outros exemplos.
O erro mudou, mas pelo jeito agora o converter está atuando corretamente, porém ainda está com o erro na hora de retornar a classe, vejam a mensagem que me retorna (a primeira linha é somente o resultado do comando que pedi pra mostrar na tela, o erro é a segunda linha!):
Codigo da Area selecionado: 31
edicao:area: Erro de validação: o valor não é válido
Meu converter:
@Override
public Object getAsObject(FacesContext context,UIComponent componente, String value) throws ConverterException{
String texto = String.valueOf(value);
AreaRN tp=new AreaRN();
Integer codigo = Integer.valueOf(texto);
FacesContext.getCurrentInstance().addMessage("consulta:id",
new FacesMessage(" Codigo da Area selecionado: "+codigo));
return tp.carregar(codigo); // Aqui, ele tem que buscar o Objeto Area, mas não sei porque a a validação diz que o valor não é válido!
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object target) {
if (target!=null){
return String.valueOf(target);
}
return null;
}
Eu fiz um teste alterando o selectOneMenu, deixando apenas com campos Strings adicionados manualmente, deixei o itemValue com valores reais do id das minhas Áreas, aí ele funciona!!! Mas quando faço essa busca na classe utilizando o Bean para apresentar no selectOneMenu, dá essa confusão toda.
Alguma sugestão?