1. Crie um arquivo "Java Class" com o nome CalendarConverter na sua IDE, depois copie o texto da classe a baixo no post.
-- classe CalendarConverter que será copiada dentro do arquivo criado --
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
public class CalendarConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value.isEmpty()) {
return null;
}
Calendar cal = Calendar.getInstance();
try {
String sDate = value.replaceAll("[a-z,A-Z, ,-, ,/]+", "");
String day = sDate.substring(0, 2);
String month = sDate.substring(2, 4);
String year = sDate.substring(4);
cal.set(Integer.parseInt(year), Integer.parseInt(month) - 1, Integer.parseInt(day));
} catch (Exception ex) {
throw new ConverterException("Data em formato inválido!");
}
return cal;
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
String displayDate = "";
if (value != null) {
Calendar calendar = (Calendar) value;
SimpleDateFormat fSDateFormat = new SimpleDateFormat("dd/MM/yyyy");
displayDate = fSDateFormat.format(calendar.getTime());
}
return displayDate;
}
}
2. Copie o texto abaixo dentro do seu faces-config.xml para essa classe ser reconhecida como uma converter.
-- texto que será copiado dentro do faces-config.xml --
<converter>
<description>Converter para conversao de Calendar (apenas data) em String.</description>
<converter-id>CalendarConverter</converter-id>
<converter-class>PACKAGE.CalendarConverter</converter-class>
</converter>
* Lembrando de substituir o PACKAGE pelo o nome do package que contém a classe java que você criou.
3. Adicione converter="CalendarConverter" nos componentes que deseja.
-- componentes jsf utilizando o converter (retire as aspas)--
<h:inputText value="#{backbean.objeto.nascimento}" id="txtDtNascimento" converter="CalendarConverter"/>
<h:outputLabel value="#{backbean.objeto.nascimento}" id="txtDtNascimento" onkeypress="return mascaraData(this, event)" converter="CalendarConverter"/>
Nenhum comentário:
Postar um comentário