JSF - 一个ajaxsupport问题

时间:2010-05-11 08:42:47

标签: ajax jsf

具体来说,我参考这个例子:

<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. 如果我单击面板组中的一个按钮,do1()会触发吗?
  2. 如果我点击第三个按钮,do1()和do2()会点火吗? (会发生什么事?)
  3. 我要求的不是仅仅尝试沙箱,因为我希望了解具体行为发生的幕后故事。

    谢谢!

1 个答案:

答案 0 :(得分: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.

如果我点击panel2,我会得到:

doSupport1 runs.
doSupport2 runs.

所以我的问题的答案是所有支持对象捕获事件,并且它们被调用的顺序是从父到儿。