Erro de validação com o convesor

Java

24/08/2014

ao cadastra a agencia o bean Validation exibir uma mensagem de banco invalido :


<p:selectOneMenu value="#{agenciaBancoControle.selectEntidade.banco}" effect="fold" id="banco">
<f:selectItems value="#{agenciaBancoControle.allBancos}" var="item" itemValue="#" itemLabel="#{item.banco}"/>
<f:converter converterId="bancoConverte"/>
</p:selectOneMenu>

@FacesConverter(value = "bancoConverte")
public class BancoConverte extends ManualCDILookup implements Converter{

@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if(value!=null){
BancoService bean = getFacadeWithJNDI(BancoService.class);
Banco bc = bean.getBancoByName(value);
return bc;
}
return null;
}

@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if(value!=null){
Banco bc = (Banco)value;
return bc.getBanco();
}
return null;
}
John Lima

John Lima

Curtidas 0

Respostas

Ronaldo Lanhellas

Ronaldo Lanhellas

24/08/2014

Essa mensagem ocorre porque o seu método getAsObject() está retornando NULO, isso deve estar ocorrendo provavelmente quando você seleciona um banco e ele tenta buscar o objeto referente a esta String. Depure seu método e veja o que está ocorrendo de errado.
GOSTEI 0
John Lima

John Lima

24/08/2014

mais quando eu testo separadamente a busca do objeto, o mesmo não retorna nulo. sera que é porque está retorna mais de um resultado na busca ?
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

24/08/2014

mais quando eu testo separadamente a busca do objeto, o mesmo não retorna nulo. sera que é porque está retorna mais de um resultado na busca ?


A questão é que provavelmente a conversão não está sendo feita da forma correta, você tem que depurar para ver o que é retornando quando você seleciona um objeto no combobox.
GOSTEI 0
POSTAR