Ошибка inputText и convertDateTime - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть поле 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 );
    }
}

Надеюсь, это полезно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...