当我在第一个Schedule I中输入日期时,我有两个日历,我自动显示在第二个日历的文本区域中。 我尝试使用此代码但没有结果:
<dd>
<f:validateBean validationGroups="#{param['validationGroup']}">
<p:calendar id="debutSortie" showOn="focus" locale="fr" pattern="dd/MM/yyyy" value="#{AAA.dateDebut}" styleClass="datepicker">
<p:ajax event="keyup" update="formDate:dateFin"/>
</p:calendar>
<h:graphicImage styleClass="js-datepicker-focus" width="19" height="19"
alt="Voir le calendrier" value="/statique/images/pictos/picto_calendrier.png"/>
</f:validateBean>
</dd>
<dt>
<h:outputLabel for="finSortie_input">Date Fin : </h:outputLabel>
</dt>
<dd>
<f:validateBean validationGroups="#{param['validationGroup']}">
<p:calendar id="dateFin" showOn="focus" locale="fr" value="#{AAA.dateFin}" pattern="dd/MM/yyyy" styleClass="datepicker">
</p:calendar>
<h:graphicImage styleClass="js-datepicker-focus" width="19" height="19" alt="Voir le calendrier" value="/statique/images/pictos/picto_calendrier.png"/>
</f:validateBean>
</dd>
我添加了此方法进行测试
public void dateChangedListener(DateSelectEvent event) {
System.out.println("DateSelectEvent" +event.getDate());
}
但是我有这条错误消息:
javax.faces.FacesException: Method not found: bean@31f8fd9.dateChangedListener(javax.faces.event.AjaxBehaviorEvent)
答案 0 :(得分:0)
你在哪里告诉第二个日历要更新第一个日历的日期?你正在更新它,但没有任何价值。最直接的转发方式是使用ajax将侦听器调用到服务器中。
<p:ajax event="dateSelect" update="formDate:dateFin" listener="#{AAA.dateChangedListener}"/>
以这种方式处理:
public void dateChangedListener(){
dateFin = new Date(dateDebut.getTime());
}
在ajax调用中,只需使用第一个值更新第二个日期。