2017-04-11 45 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