2017-04-11 49 views
0

我已經添加2個A4J支持標籤到RichFaces的日曆,一個與的onblur事件,而另一個具有一個oninputblur事件,這將允許用戶點擊從日曆中選擇日期,或者手動輸入日期。用戶也可以點擊選擇日期,然後也可以手動編輯日期。這兩個標籤reRender相同的日曆組件ID。在目前爲止的測試中,這是行得通的,但我想知道是否有可能發生servlet異常,如果它嘗試在同一個ID上「重複」兩次?我想這不會是因爲他們都是不同的事件,但如果有人看到我的擔憂,我會真誠地感謝他們的反饋。以下是我所指的代碼片段。多A4J支持標籤(煤層2.2)日曆組件

<s:decorate id="acctHldrBthDtField" template="/layout/edit.xhtml"> 
    <ui:define name="label">Account Holder Birth Date</ui:define> 
     <rich:calendar id="acctHldrBthDt" 
      value="#{P18SlipHome.instance.acctHldrBthDt}" 
      datePattern="dd-MMM-yyyy" enableManualInput="true" 
      onfocus="saveCurrentFocus(this);" > 
      <a:support event="onblur" reRender="acctHldrBthDtField" ajaxSingle="true"/> 
      <a:support event="oninputblur" reRender="acctHldrBthDtField" ajaxSingle="true"/> 
    </rich:calendar><br/>Date format must be dd-Mmm-yyyy 
</s:decorate> 

回答

0

對於誰可能是使用Seam的RichFaces的2.2版本,都面臨這一具體問題的人,這是我初來乍到的答案爲我的作品:

<s:decorate id="cntlPrsnBthDtField" template="/layout/edit.xhtml"> 
<ui:define name="label">Birth Date</ui:define> 
<rich:calendar id="cntlPrsnBthDt" 
    value="#{_p18CntlPrsn.bthDt}" 
    datePattern="dd-MMM-yyyy" 
    enableManualInput="true" 
    maxlength="11" > 
    <a:support event="oninputchange" action="#{P18SlipHome.onDateChangeValidation}" reRender="cntlPrsnBthDtField" ajaxSingle="true"/> 
    <a:support event="onchanged" action="#{P18SlipHome.onDateChangeValidation}" reRender="cntlPrsnBthDtPanelGrid" ajaxSingle="true"/> 
</rich:calendar><br/>Date format must be dd-Mmm-yyyy 
</s:decorate> 
+0

對不起,我應該仔細審查我的答案在提交之前。這需要更多的解釋:我認爲重複的ID關注是沒有根據的 - 我沒有用上述解決方案來解決它。我解決的另一個問題是關於何時手動輸入無效日期,然後從彈出的日曆中選擇正確的日期,然後單擊另一個字段不會**使驗證錯誤消失。使用不同事件的2nd a4j支持標籤解決了該問題。再次,如果這個答案引起混淆,我很抱歉。 – Randy