Olá galera.
Estou usando um selectManyMenu do Primefaces e estou com problema de conversão de uma classe, mas não de outra classe que tem o mesmo conversor praticamente.
Conversor com problema, com o erro: "j_idt28:j_idt36: Erro de validação: o valor não é válido"
@FacesConverter(forClass=Identificador.class)
public class IdentificadorConverter implements Converter {
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
if(arg2.length() > 0){
Identificador identificador = new Identificador();
identificador.setId(Integer.valueOf(arg2));
identificador = identificador.seleciona();
return identificador;
}
return null;
}
@Override
public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object value) {
if (value instanceof Identificador) {
Identificador identificador = (Identificador) value;
if (identificador != null && identificador instanceof Identificador && identificador.getId() != null) {
uiComponent.getAttributes().put( identificador.getId().toString(), identificador);
return identificador.getId().toString();
}
}
return "";
}
}
@FacesConverter(forClass = Vacina.class)
public class VacinaConverter implements Converter {
@Override
public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String value) {
System.out.println(value);
if(value != null && value.trim().length() > 0) {
try {
Vacina vacina = new Vacina();
vacina.setId(Integer.valueOf(value));
vacina = vacina.seleciona();
return vacina;
} catch(NumberFormatException e) {
throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro de conversão", ""));
}
}else{
return null;
}
}
@Override
public String getAsString(FacesContext facesContext, UIComponent uiComponent, Object value) {
if (value instanceof Vacina) {
Vacina vacina = (Vacina) value;
if (vacina != null && vacina instanceof Vacina && vacina.getId() != null) {
uiComponent.getAttributes().put( vacina.getId().toString(), vacina);
return vacina.getId().toString();
}
}
return "";
}
}