2016-03-31 9 views
0

私はこの問題を解決しようとしていましたが、解決できませんでした。問題は、ユーザーがポップアップカレンダーで日付を選択したときに発生する準備ができているが、リスナーは決して実行されないdateSelectイベントを持つカレンダーがあることです。構文は私の観点から正しいです。dateSelectイベントがp:calendarで実行されていない

form.xhtmlカレンダーコード。

     <p:calendar value="#{travel.departureDate}" required="true" 
          id="departureDate" pattern="MM/dd/yyyy HH:mm:ss" 
          onfocus="$('#ui-datepicker-div td').unbind();" readonly="true"> 
          <p:ajax event="dateSelect" actionListener="#{travelControl.alterDate}" 
          update=":main-form:departureDate" /> 
         </p:calendar> 

すべてはフォーム内とパネルグリッドコンテナ内にあります。

Beanメソッドは次のとおりです。日付を選択すると、それが原因ではない適切に発射されるイベントに変更されていなかったとして

public void alterDate(SelectEvent event) { 
    System.out.println("Hour [Pre] " 
      + travel.getDepartureDate().toString()); //debug 

    travel.setDepartureDate((Date) event.getObject()); 

    System.out.println("Hour [Post] " 
      + travel.getDepartureDate().toString()); //debug 
} 

は、その後、一瞬のためのテキストフィールドの値が変更とは、Beanの1にリセットされます。代わりのactionListenerの

答えて

1

使用リスナー:

listener ="#{travelControl.alterDate}" 
+0

私はすでにそれを試してみましたが、前と同じ動作を持っています。 – Niconoid

+0

あなたのalterDateメソッドでコードを削除しようとしましたが、ログメッセージが吐き出されているかどうかを調べるだけでしたか?あなたのコードを複製し、 "actionListener"を "listener"に変更すると動作します。あなたの方法では、どこから「旅行」を得るのですか? – user3667591

+0

ここから旅行します。 '@ManagedProperty(value ="#{travel} ") \tプライベートBeanTravel travel;'。私はそれらが実行されているかどうかをチェックするためにそれらの.out.printlnを持っており、日付を選択するときに何も得られません。 – Niconoid

関連する問題