2013-03-08 91 views
0

我有我的XHTML這樣Bean方法與AjaxBehaviorEvent和沒有AjaxBehaviorEvent的bean方法的區別?

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

案例一:AJAX監聽法AjaxBehaviorEvent

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

案例二:無AjaxBehaviorEvent

public void increment() { 
     count++; 
} 

在這兩種情況下,聽衆會調用並做計數器工作增加計數在keyup。那麼,什麼時候我需要使用AjaxBehaviorEvent,何時不需要使用?

+2

「AjaxBehaviorEvent」將使您可以訪問觸發事件的組件。從中你可以得到很多信息。這是主要的優勢。另外,你可以觸發並處理一個自定義的'FacesEvent',並且還可以廣播另一個'BehaviorEvent',其他聽衆可以處理 – kolossus 2013-03-08 02:03:51

回答

1

您可以將多個ajax事件綁定到相同的方法,並使用getSource(),AjaxBehaviorEvent來知道哪個組件觸發了該事件。

+0

是的。這是有道理的。是否還有其他用途? – SRy 2013-03-08 01:52:48