我必须播放网络摄像头视频,因此我使用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>
答案 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>