Обработка изменения даты в календаре простых лиц - PullRequest
2 голосов
/ 24 марта 2011

Я работаю над проектом JSF 2.0 с использованием Mojarra, PrimeFaces 2.2.1 и Tomcat 6.x.

Мое приложение интернационализировано. Я использую календарь простых лиц следующим образом:

<p:calendar value="#{boxItem.agendaDate}" mode="inline" 
      showOtherMonths="true" styleClass="agendaHBox"
      selectListener="#{boxItem.handleAgendaDateChange}" 
      onSelectUpdate="@form"/>

Проблема возникает, когда мой язык отличается от английского, и я использую атрибут selectListener.

Например, это происходит, когда локаль установлена ​​на испанский. Когда появляется календарь, он устанавливается на текущую дату: март 2011 г. 24-го. Когда я щелкаю в другой день, например, 25 марта 2011 года, вызывается метод selectListener, но я получаю дату "Чт 03 мая 00:00:00 CEST 2012" и повестка дня внезапно меняется на март 2012 года 5-го числа.

Метод selectListener:

public void handleAgendaDateChange(DateSelectEvent event)
{
   System.err.println("handleAgendaDateChange = " + event.getDate());
}

Если я удаляю атрибут selectListener, календарь работает правильно (остается март 2011 года и выбирает 17-е), но в этом случае у меня возникают проблемы с обработкой изменений даты.

Мне нужен код, который будет запускаться, когда пользователь выбирает новую дату в элементе управления календаря и передает ее бэкэнду с запросом Ajax. Как я могу сделать это без selectListener?

1 Ответ

2 голосов
/ 24 марта 2011

Кажется, что p:calendar глючит, если вы используете его с языком, отличным от en (что касается списка открытых вопросов, связанных с календарем и языком ).

...