2017-12-21 44 views
0

나는 두 개의 Datepicker/Calendar (Primefaces)을 가지고 있습니다. 두 번째 캘린더를 클릭 할 때 내가 원하는 것은 두 개의 캘린더 사이의 날짜를 caclulate하는 Listener입니다. 날짜. 그래서 내가했던 한 것입니다 :프라임 스 캘린더 청취자가 데이터에 대한 변수에 영향을 미치지 않습니다

웹 페이지 리스너가 호출 될 때 그 것을 말한다 콩

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

문제는 백업

<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() 
{ 

} 

내가이 논리적 아니라고 생각, 그래서 웹 페이지/backingBean이 동작을 한 이유를 알고 싶어? 두 번째 달력의 청취자 만 사용할 수있는 방법이 있습니까?

감사

두 번째 달력의 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/4) 및 idBegDate (첫 번째 달력)의 값을 가지고 모델 객체에 넣어 알고 추가해야 .

처리하지 않으면보기에서 아무 것도 서버로 돌아 오지 않습니다. 첫 번째 캘린더에 p:ajax을 추가하면 처리되었습니다.

+0

이것이 작동하고 있습니다. 첫 번째 날짜에 ''이 없을 때 왜 'backingbean'변수에 영향을 미치지 않는지 제발 설명해 주시겠습니까? –

+0

@MehdiBouzidi [process/update attributes] (https://stackoverflow.com/questions/25339056/understanding-primefaces-process-update-and-jsf-fajax-execute-render-attributes)를 읽으십시오. 나의 짧은 버전은'process' 속성으로 JSF에게 뷰에서 _process_ 할 것을 알려주고 그 컴포넌트에 바인드 된 빈 값을 업데이트한다. –