2014-03-25 38 views
0

我在Jsf表單上有兩個字段日期。Ajax事件不觸發驗證(Facescontext)

日期1:DOB和日期2:Date_Retire

當用戶將選擇從Date_retire一個日期,它應該是大於18歲。

<h:outputText value="DOB:" /> 
<p:calendar pattern="mm/dd/yyyy" id="dob" value="#{ActorComponent.actor.dob}" 
    required="false" converter="primefacesCalendarConverter" /> 

<h:outputText value="Date retired:" /> 
<p:calendar pattern="mm/dd/yyyy" id="dateretired" 
     value="#{ActorComponent.actor.dateretired}" 
     required="false" converter="primefacesCalendarConverter" > 
    <p:ajax event="dateSelect" listener="#{ActorComponent.minimumDate()}" 
     process= "dateretired"" > 
</calendar> 

監聽器:

public void minimumDate(Calendar Object){ 
    Calendar dob=actor.getdob(); 
    dob.add(Calendar.Year,18); 
    if(Object.before(dob)){    
     FacesContext.getCurrentInstance().addMessage(
      "FacesMessage.SEVERITY_ERROR", 
      new FacesMessage("Date is not valid.")); 
    } 
} 

阿賈克斯不工作。 Facescontext不顯示消息。任何人都可以幫忙

+0

我會感到驚訝,如果你有一個名爲'FacesMessage.SEVERITY_ERROR'組件你的看法。你是否打算生成一個全球信息?嘗試將'null'作爲第一個參數傳遞給'addMessage'。您的視圖代碼也需要審查。至少有兩個錯誤。 – mabi

回答

0

我不知道,如果「dateSelect」是一個真實的事件,請嘗試使用「點擊」或「點擊」

<p:ajax event="click"