如何使commandButton不能完全刷新页面?如何使用f:ajax?

时间:2012-01-24 14:46:07

标签: jsf jsf-2 refresh commandbutton

我必须播放网络摄像头视频,因此我使用ustream来执行此操作,这会为我生成flash嵌入代码,并且我有一个按钮可以关闭/打开灯光,但是当我按下按钮它刷新整个页面,所以闪存组件。

有一些方法可以不刷新页面并仍然发送给命令? 那么现在就是这样:

        <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 个答案:

答案 0 :(得分:22)

使用Ajax。这是在感兴趣的命令按钮中嵌套<f:ajax>的问题。

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

特别是render="@none"(无论如何都是默认值,你可以完全省略该属性)将指示JSF在提交后不再重新渲染。如果您只想重新呈现特定组件而不是整个页面,那么您还可以在render属性中指定该特定组件的ID。

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

另见: