【问题标题】:Multiple a4j support tags on one richfaces (Seam 2.2) calendar component一个richfaces(Seam 2.2)日历组件上的多个a4j支持标签
【发布时间】:2017-04-11 14:54:37
【问题描述】:

我在 Richfaces 日历中添加了 2 个 a4j 支持标签,一个带有 onblur 事件,另一个带有 oninputblur 事件,这将允许用户单击从日历中选择日期,或手动输入日期。用户也有可能点击选择一个日期,然后也可以手动编辑它。两个标签都重新渲染相同的日历组件 ID。到目前为止,在测试中这是有效的,但我想知道是否有可能发生 servlet 异常,它试图在同一个 ID 上重新渲染“两次”?我认为不会,因为它们都是不同的事件,但是如果有人对此感到担忧,我将真诚地感谢您的反馈。下面是我指的代码sn-p。

<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>

【问题讨论】:

    标签: richfaces ajax4jsf


    【解决方案1】:

    对于可能正在使用 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>
    

    【讨论】:

    • 对不起,我应该在提交之前仔细检查我的答案。这需要更多解释:我相信重复 ID 问题是没有根据的 - 我没有使用上述解决方案遇到它。为我解决的另一个问题是手动输入无效日期,然后从弹出日历中选择正确日期,然后单击另一个字段会使验证错误消失。使用带有不同事件的第二个 a4j 支持标签解决了该问题。再次,如果这个答案引起任何混淆,我深表歉意。
    猜你喜欢
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多