Livro Java EE - Converter Calendar -> Date (Resolvido)

No capítulo 5 estou recebendo este erro de conversão entre o tipo Date e o tipo Calendar:

> java.util.Date cannot be cast to java.util.Calendar

Meu converter já está criado e view está indicando o tipo:
View
(…)

<div>

<h:outputLabel>Data de lançamento</h:outputLabel>
<h:inputText value=“#{adminBooksBean.product.releaseDate}” pt:type=“date”>
<f:convertDateTime pattern=“yyyy-MM-dd”/>
</h:inputText>

Converter
package org.casadocodigo.loja.converters;

import java.util.Calendar;
import java.util.Date;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.DateTimeConverter;
import javax.faces.convert.FacesConverter;

@FacesConverter(forClass=Calendar.class)
public class CalendarHtml5Converter implements Converter {

private static DateTimeConverter originalConverter = new DateTimeConverter();
static {
	originalConverter.setPattern("yyyy-MM-dd");
}

@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
	Date date = (Date) originalConverter.getAsObject(context, component, value);
	if (date == null) {
		return null;
	}
	Calendar newCalendar = Calendar.getInstance();
	newCalendar.setTime(date);
	return newCalendar;
}

@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
	if (value == null) {
		return null;
	}
	Calendar calendar = (Calendar) value;
	return originalConverter.getAsString(context, component, calendar.getTime());
}

}

Alguém já passou por isto?

Acho que você não precisa colocar:
<f:convertDateTime pattern="yyyy-MM-dd"/>

2 curtidas

Obrigado mais uma vez, Gracyane.

Deu certo:slight_smile:

1 curtida

Estava com o mesmo problema.

Resolvido com a sugestão da Gracyane.