Я работаю над проектом 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?