【问题标题】:use a4j:queue for events synchronization使用 a4j:queue 进行事件同步
【发布时间】:2011-04-20 09:26:58
【问题描述】:

我在表单上有一个输入文本和一个按钮。
我为输入文本处理事件onchange,为按钮处理onclick
如果用户更改文本然后单击按钮 2 个事件被触发,有时它们被同时处理。
我希望在onchange 完成后处理onclick
为此,我使用<a4j:queue name="myQueue"/> 并用<a4j:queue name="myQueue"/> 标记事件,如下所示:

<a4j:queue name="myQueue"/>
    ...
<h:inputText id="dateFromText" value="#{flowScope.fileSearchCriteria.fromDateStr}">
          <a4j:support event="onchange" eventsQueue="myQueue" reRender="datePanel1" 
          actionListener="#{fileSearchCriteria.changeTextFromDate}"/>
</h:inputText>
    ....
<h:commandButton id="fileInSearch" action="fileInSearch"
        value="#{resourceBundle.searchIn}" type="submit">
        <a4j:support eventsQueue="myQueue" event="onclick"/>
</h:commandButton>
...

因此,onclick 并非每次都在 onchange 之后处理。

【问题讨论】:

    标签: events jsf richfaces queue ajax4jsf


    【解决方案1】:

    您每次应该有两个事件,onchange 和 onclick。但是,我建议切换到 a4j:commadnButton 而不是在内部使用带有 a4j:support 的 h:commandButton。

    【讨论】:

    • 我试过 a4j:commandButton - 没有效果。 “每次两个事件”是什么意思?
    • 您将有两个事件,按照您激活组件的顺序。这是一篇关于队列的好文章,可能会有所帮助:jsfcentral.com/articles/richfaces_queue.html
    猜你喜欢
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    相关资源
    最近更新 更多