2017-12-21 19 views
0

私は2つのDatepicker/Calendar(Primefaces)を持っています。私がしたいのは、2番目のカレンダーをクリックするときです。リスナーと呼ぶでしょう。日付。だから、これは私がやったきたものである。問題は、リスナーが呼び出されたとき、それはと言うことであるビーンPrimefacesカレンダーリスナーはデータへの影響がありません

public void doCalculate() 
{ 
//..Some Stuffs 
} 

をバックアップ

Webページ

<a:column span="4" > 
      <a:label value="Begining Date" span="4" required="true" ></a:label> 
      <a:column span="8"> 
       <p:calendar id="idBegDate" value="#{addController.enti.begDate}" 
          pattern="dd/MM/yyyy" label="Begining Date" 
          readonlyInput="true" locale="fr" navigator="true" 
          required="true" > 

       </p:calendar> 

      </a:column> 
     </a:column> 

     <a:column span="4" > 
      <a:label value="End Date" span="4" required="true" ></a:label> 
      <a:column span="8"> 
       <p:calendar id="idDateFin" value="#{addController.enti.dateFinAbsAgt}" 
          pattern="dd/MM/yyyy" label="End Date" 
          readonlyInput="true" locale="fr" navigator="true" 
          required="true" > 
        <p:ajax event="dateSelect" listener="#{addController.doCalculate()}" update="jourCalendaire" /> 
       </p:calendar> 

      </a:column> 
     </a:column> 

dateOfBeginingNULLですが、そうではありません。

私はfirst calendarに空listenerを追加することで、この問題への解決策を見つけた:

public void emptyListener() 
{ 

} 

私は、これは論理的ではないと思うので、私は、Webページ/ backingBeanこの動作を持っていた理由を知りたいですか? 2番目のカレンダーのリスナーのみを使用できる方法はありますか?

おかげで第二カレンダーのp:ajax

+1

[PrimeFacesプロセス/アップデートとJSF f:ajaxの実行/レンダリング属性の理解](https://stackoverflow.com/questions/25339056/understanding-primefaces-process-update-and-jsf-fajax-execute)の可能な複製-render-attributes) – Kukeltje

答えて

1

は、あなたがprocess="@this idBegDate"を追加する必要がありますので、JSFは、@thisの値(第2暦)とidBegDate(最初のカレンダー)を取り、あなたのモデルオブジェクトにそれを置くことを知っています。

処理しない限り、ビューからの何もサーバーに戻ってこない場合があります。最初のカレンダーにp:ajaxを追加すると、あなたのために処理されました。

+0

これは働いています。最初の日付に ''がないとき、なぜ 'backingbean'変数に影響しないのか教えてください。 –

+0

@MehdiBouzidi [プロセス/更新属性](https://stackoverflow.com/questions/25339056/understanding-primefaces-process-update-and-jsf-fajax-execute-render-attributes)を読んでください。私の短いバージョンの 'process'属性は、JSFにビューから何を_process_するかを伝え、それらのコンポーネントにバインドされたBeanの値を更新します –

関連する問題