JSF - Вопрос поддержки ajax - PullRequest
0 голосов
/ 11 мая 2010

В частности, я ссылаюсь на этот пример:

<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 ()? (Что будет?)

Я спрашиваю вместо того, чтобы просто попробовать в песочнице, потому что я надеюсь немного понять за кулисами, почему происходит конкретное поведение.

Спасибо!

1 Ответ

1 голос
/ 11 мая 2010

Хорошо. Протестировал и вот результат:

Для этого кода:

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

Если я нажму на панели1, я получу:

doSupport1 runs.

Если я нажимаю на кнопку, я получаю:

doSupport1 runs.
doButton runs.

Если я нажму на панели2, я получу:

doSupport1 runs.
doSupport2 runs.

Таким образом, ответ на мой вопрос заключается в том, что все вспомогательные объекты перехватывают события, и порядок их вызова от отца к сыну.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...