У меня есть поле h:inputText
, которое я использую для ввода даты. Я использую f:convertDateTime
, но получаю ошибки.
Вот ситуация:
<h:inputText value="#{listModel.creationDate}" valueChangeListener="#{listController.filterFieldChanged}">
<f:convertDateTime type="date" pattern="yyyy-MM-dd"/>
</h:inputText>
Если я ввожу «2011-11-23», я получаю следующую ошибку:
"... [exec] sourceId = j_idt3 [severity = (ERROR 2), summary = (Значение настройки ошибки преобразования« Ср. 23 ноября 01:00:00 CET 2011 »для« нулевого преобразователя ».), Деталь = (Значение параметра Ошибка преобразования «Ср. 23 ноября 01:00:00 CET 2011» для «нулевого конвертера».)] | #] "(Кроме того, откуда берется 01:00:00 ??)
Если я уберу type="date"
, оставлю только pattern="yyyy-MM-dd"
и введу ту же дату, я получу ту же ошибку.
Если я удалю шаблон и оставлю только type="date"
и введу ту же дату, я получу следующую ошибку:
"[exec] sourceId = searchForm: j_idt72 [серьезность = (ОШИБКА 2), сводка = (searchForm: j_idt72: '2011-11-23' не может быть понят как дата.), Подробно = (searchForm: j_idt72 : «2011-11-23» нельзя понимать как дату. Пример: 23.11.2011)] | #] "
Я немного растерялся. Если я определяю шаблон yyyy-MM-dd
, почему "2011-11-23" не принимается?
Информация добавлена:
value = "# {listModel.creationDate}"
public Date getCreationDate()
{
return creationDate;
}
Это геттер для creationDate в классе ListModel. (это java.Util.Date)
valueChangeListener = "# {listController.filterFieldChanged}"
public void filterFieldChanged( ValueChangeEvent event )
{
// Note: value change events are handled in the PROCESS_VALIDATIONS
// phase by default. The problem is that the model values are not
// updated until later, so any changes we make here would normally be
// overwritten.
// By requeueing the event and targeting it to the UPDATE_MODEL_VALUES
// phase we can make the model changes without them being overwritten.
if ( event.getPhaseId().equals( PhaseId.ANY_PHASE ) )
{
event.setPhaseId( PhaseId.UPDATE_MODEL_VALUES );
event.queue();
}
else
{
// reset the paging any time a filter field was changed
listModel.setFirstResult( 0 );
}
}
Надеюсь, это полезно ...