【问题标题】:Difference between bean method with AjaxBehaviorEvent and bean method without AjaxBehaviorEvent?带有 AjaxBehaviorEvent 的 bean 方法和没有 AjaxBehaviorEvent 的 bean 方法之间的区别?
【发布时间】:2013-02-23 11:33:33
【问题描述】:

我有这样的 XHTML

<h:form id="form">
    <h:panelGrid columns="3">
        <h:outputText value="Keyup: " />
        <p:inputText id="counter">
            <p:ajax event="keyup" update="out"
                listener="#{counterBean.increment}" />
        </p:inputText>
        <h:outputText id="out" value="#{counterBean.count}" />
    </h:panelGrid>
</h:form>

案例一:使用AjaxBehaviorEvent的ajax监听方法

public void increment(AjaxBehaviorEvent event) {
        count++;
    }

案例二:没有AjaxBehaviorEvent

 public void increment() {
       count++;
}

在这两种情况下,将调用侦听器并执行计数器工作以增加 keyup 的计数。那么,究竟什么时候需要使用AjaxBehaviorEvent,什么时候不需要使用呢?

【问题讨论】:

  • AjaxBehaviorEvent 将允许您访问触发事件的组件。从中可以得到很多信息。这是主要优势。此外,您可以触发和处理自定义FacesEvent,还可以广播其他听众可以处理的额外BehaviorEvent

标签: java ajax jsf jsf-2 dom-events


【解决方案1】:

您可以将多个 ajax 事件绑定到同一个方法,并使用 getSource()AjaxBehaviorEvent 来了解哪个组件触发了该事件。

【讨论】:

  • 是的。有道理。还有其他用途吗?
猜你喜欢
  • 2013-01-06
  • 2012-06-30
  • 2015-09-17
  • 2011-10-11
  • 2011-05-16
  • 2011-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多