2010-05-11 37 views
0

具體來說,我指的這個例子:JSF - 一個ajaxsupport問題

<h:panelgroup> 
    <a4j:support event="onlick" action="do1"/> 
    <h:commandbutton id="1".../> 
    <h:commandbutton id="2".../> 
    <h:commandbutton id="3"...> 
    <a4j:support event="onlick" action="do2"/> 
    </h:commandbutton> 
</h:panelgroup> 

我的問題 -

  1. 如果我點擊panelGroup中的一個按鈕,將DO1()火?
  2. 如果我點擊第三個按鈕會do1()和do2()會失火嗎? (會發生什麼?)

我在問,而不是僅僅在沙箱中嘗試,因爲我希望瞭解一些幕後爲什麼會發生特定行爲。

謝謝!

+0

試一試.. :),它是''我想。另外,標籤richfaces,如果它是richfaces – Bozho 2010-05-11 08:45:04

+0

哦,你知道什麼:-)我會嘗試並回答自己。至少添加一個到stackoverflow的知識 – Ben 2010-05-11 08:49:25

回答

1

好的。經測試它,這就是結果:

對於此代碼:

<h:form> 
    <h:panelGrid> 
     <h:panelGrid style="border: 1px solid #000;"> 
      <h:outputText value="Panel1" /> 
      <a4j:support event="onclick" action="#{mrBean.doSupport1}" /> 
      <h:commandButton action="#{mrBean.doButton}"> 
      </h:commandButton> 
      <h:panelGrid style="border: 1px solid #000;"> 
       <h:outputText value="Panel2" /> 
       <a4j:support event="onclick" action="#{mrBean.doSupport2}" /> 
      </h:panelGrid> 
     </h:panelGrid> 
    </h:panelGrid> 
</h:form> 

如果我在PANEL1點擊我得到:

doSupport1 runs. 

如果我上的按鈕時鐘我得到:

doSupport1 runs. 
doButton runs. 

如果我點擊面板2,我會得到:

doSupport1 runs. 
doSupport2 runs. 

所以我的問題的答案是,所有的支持對象捕獲事件,他們被稱爲從父親到兒子的順序。

+0

+1,lol @'mrBean' – BalusC 2010-05-11 11:22:30