Невозможно вызвать p: calendar - PullRequest
0 голосов
/ 19 июня 2011

Мой код выглядит следующим образом:

<p:calendar showOn="button"
                  value="#{searchMB.filledFromDate}"
                  pattern="MM/dd/yyyy" maxlength="10" id="filledFromDate"
                  converter="submittedDateConverter"
                  converterMessage="#{message.filled_date_from_is_not_a_valid_date}"
                  styleClass="calendar" selectListener="#{searchMB.test}"
                  onchange="alert('')"
                  onSelectUpdate="filledToDate_panel">
                  <f:ajax event="blur" execute="filledFromDate"
                     render="filledToDate_panel"></f:ajax>
 </p:calendar>


   public void test(DateSelectEvent event) {
       System.out.println("-------------->" + event);
    }
  • Я хочу реализовать эту функцию : когда я выбираю нижний список Календаря, я хочунемедленно вызвать метод test, установить выбранную дату на другой ввод календаря.

    Если я не добавлю конвертер.метод будет запущен. Но после того, как я добавлю конвертер , метод selectListener="#{searchMB.test}" не может быть запущен. Не знаю почему. Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 20 июня 2011

Вы не должны использовать тег <f:ajax> в компоненте Primefaces.

Для многих компонентов Primefaces вы можете использовать вместо этого тег <p:ajax>, а для <p:calendar> вместо этого вы можете использовать различные атрибуты для обеспечения функциональности Ajax.

Из руководства по Primefaces 2.2

OnSelectProcess - Компоненты для обработки с помощью ajax при выборе даты (по умолчанию: @this).

А по Ajax выбор слушателя из руководства:

Ajax Selection Календарь поддерживает мгновенный выбор ajax, что означает, что при выборе даты на стороне сервера selectListener может быть вызван с экземпляром org.primefaces.event.DateSelectEvent как параметр. Необязательный параметр onSelectUpdate позволяет обновлять другие компоненты на странице.

<p:calendar value="#{calendarBean.date}" onSelectUpdate="messages"
     selectListener="#{calendarBean.handleDateSelect}" />
 <p:messages id="messages" />

Код позади

public void handleDateSelect(DateSelectEvent event) {
     Date date = event.getDate();
     //Add facesmessage
}

Мне интересно, зачем вам нужен конвертер? Атрибут value может быть свойством управляемого компонента типа java.util.Date без необходимости явного преобразования.

...