Как заставить commandButton не полностью обновить страницу? Как использовать f: ajax? - PullRequest
12 голосов
/ 24 января 2012

Я должен транслировать видео с веб-камеры, поэтому для этого я использую ustream , который генерирует для меня код для вставки флэш-памяти, и у меня есть кнопка для включения / выключения света, но когда я нажмите кнопку, чтобы обновить всю страницу и, таким образом, компонент флэш-памяти.

Есть какой-то способ не обновлять страницу и отправлять команду? Ну, пока это так:

        <h:form id="form_supervisory">
            <h:panelGrid>
                <h:column>
                    <iframe width="480" height="296" src="http://www.ustream.tv/embed/9599890" scrolling="no" frameborder="0" style="border: 0px none transparent;">    </iframe>
                    <h:commandButton value="Lâmpada" action="#{supervisoryc.invertBo}" />
                    <h:graphicImage value="#{supervisoryc.imageBo}" />
                </h:column>
            </h:panelGrid>
        </h:form>

1 Ответ

22 голосов
/ 24 января 2012

Используйте Ajax.Это вопрос вложенности <f:ajax> в интересующую командную кнопку.

<h:commandButton ...>
    <f:ajax execute="@form" render="@none" />
</h:commandButton>

В частности, render="@none" (в любом случае это значение по умолчанию, вы можете просто полностью пропустить атрибут) проинструктирует JSF повторно ничего не делать после отправки.Если вы намереваетесь перерисовать только определенный компонент вместо всей страницы, то вы также можете указать идентификатор этого конкретного компонента в атрибуте render.

<h:commandButton ...>
    <f:ajax execute="@form" render="result" />
</h:commandButton>
<h:panelGroup id="result">...</h:panelGroup>

См. Также:

...