Nesse poste vou mostrar um converter simples do JSF. A diferença entre converters do JSF 1.* para o 2.* é que no 1.* é necessário declarar o converter no arquivo faces-config.xml enquanto que no 2.* é usado a anotação @FacesConverter.
O papel do converter é dizer ao JSF como levar para o lado cliente e trazer de volta os objetos das classes que você construiu. É exigido, por exemplo, para a construção de Selects.
Na prática, pela grande quantidade de classes de um projeto, geralmente se constrói um converter genérico para evitar o trabalho de ter que construir um converter para cada classe.
@FacesConverter(forClass=Paciente.class)
public class PacienteConverter implements Converter {
PacientesDAO pacientesDAO = new PacientesDAO();
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value == null) {
return null;
}
Long id = new Long(value);
Paciente paciente = (Paciente) pacientes.porId(id);
return paciente;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value == null) {
return null;
}
Paciente paciente = (Paciente) value;
return paciente.getId().toString();
}
}
public class PacienteConverter implements Converter {
PacientesDAO pacientesDAO = new PacientesDAO();
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value == null) {
return null;
}
Long id = new Long(value);
Paciente paciente = (Paciente) pacientes.porId(id);
return paciente;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value == null) {
return null;
}
Paciente paciente = (Paciente) value;
return paciente.getId().toString();
}
}
Para este artigo é isso, abraços.
Nenhum comentário:
Postar um comentário