opa
galera o erro que apresenta é este:
Conversion Error setting value '3' for 'null Converter'.Minha classe EstadoConverter
package br.com.school.chasecontrol.converter;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import br.com.school.chasecontrol.bean.EstadoBean;
import br.com.school.chasecontrol.dao.EstadoDAO;
/**
* Classe responsavel por retornar um conversor de estado
* @author ebarros
*
*/
public class EstadoConverter implements Converter {
public final static String CONVERTER_ID = "br.com.school.chasecontrol.bean.EstadoBean"; //path dos beans da classe Estado
public Object getAsObject(FacesContext context, UIComponent component, String value) {
System.out.println("Object: " + value);
try {
if (value == null || value.equalsIgnoreCase("-1") ) {
return null;
}
Integer id = new Integer(value);
return new EstadoDAO().buscarEstadoPorId(id);
} catch (NumberFormatException ne) {
throw new ConverterException("Não foi possível converter (" + value + ") para Estado: não é um número inteiro.", ne);
} catch (IllegalArgumentException e){
throw new ConverterException("Não foi possível converter (" + value + ") para Estado: identificador desconhecido.", e);
}
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
System.out.println("String: " + value);
if (value == null)
return null;
if (value instanceof EstadoBean) {
EstadoBean aux = (EstadoBean) value;
return aux.getCodEstado().toString();
} else if(value instanceof String && ((String)value).equalsIgnoreCase("-1")) {
return "-1";
} else {
throw new ConverterException("(" + value.getClass() + ") não é uma instância.");
}
}
}
<h:outputLabel value="Estado" for="estado" />
<h:selectOneMenu id="estado" value="#{controleAluno.estado}" converter="#{br.com.school.chasecontrol.converter.EstadoConverter}">
<f:selectItems value="#{controleAluno.listaEstados}" />
</h:selectOneMenu>
package br.com.school.chasecontrol.dao;
import java.util.ArrayList;
import java.util.List;
import br.com.school.chasecontrol.bean.EstadoBean;
/**
* Classe responsavel por armazenar as operações de persistencia do sistema
* @author Paulo Fernandes
*
*/
public class EstadoDAO {
/**
* metodo responsavel por trazer a lista de estados
* @return
*/
public List<EstadoBean> getEstados() {
List<EstadoBean> lista = new ArrayList<EstadoBean>();
EstadoBean estado1 = new EstadoBean();
estado1.setCodEstado(1);
estado1.setSiglaEstado("SP");
lista.add(estado1);
EstadoBean estado2 = new EstadoBean();
estado2.setCodEstado(2);
estado2.setSiglaEstado("RJ");
lista.add(estado2);
EstadoBean estado3 = new EstadoBean();
estado3.setCodEstado(3);
estado3.setSiglaEstado("RS");
lista.add(estado3);
EstadoBean estado4 = new EstadoBean();
estado4.setCodEstado(4);
estado4.setSiglaEstado("SC");
lista.add(estado4);
return lista;
}
/**
* metodo responsavel por retornar um estado a partir do seu codigo
* @param id
* @return
*/
public Object buscarEstadoPorId(Integer id) {
EstadoBean estado = new EstadoBean();
estado.setSiglaEstado("SP");
estado.setCodEstado(id);
return estado;
}
}