如何在jsf操作中使用Javascript和Icefaces更新页面状态?

如何在jsf操作中使用Javascript和Icefaces更新页面状态?,jsf,icefaces,icefaces-3,Jsf,Icefaces,Icefaces 3,如何在完成h:commondButton操作时启动服务器端或客户端事件处理程序? 此服务器端进程需要一些时间才能完成。 当我单击按钮时,需要一些时间来完成工作并更新UI。我想在UI更新时触发一些东西。 我是JSF新手。请帮我做这个 谢谢 Icefaces有一个javascript库,可以在客户端对事件进行排队。Icefaces在操作完成后刷新DOM,这样您就可以在操作方法结束时对事件进行排队 这是我在IceFaces1.8.x和2.0中使用的东西。我不太确定IceFaces3是否添加了任何特殊组

如何在完成
h:commondButton
操作时启动服务器端或客户端事件处理程序?
此服务器端进程需要一些时间才能完成。
当我单击按钮时,需要一些时间来完成工作并更新UI。我想在UI更新时触发一些东西。
我是JSF新手。请帮我做这个


谢谢

Icefaces有一个javascript库,可以在客户端对事件进行排队。Icefaces在操作完成后刷新DOM,这样您就可以在操作方法结束时对事件进行排队

这是我在IceFaces1.8.x和2.0中使用的东西。我不太确定IceFaces3是否添加了任何特殊组件/代码来捕获DOM更新事件

xhtml

通过在h:commandButton上使用f:ajax并在ajax调用期间重新呈现消息,您也可以非常轻松地完成此任务


你不能只使用普通的
来完成。您需要
或一些IceFaces命令按钮组件来实现这一点。你可以在网上找到很多关于JSf
的教程。Icefaces 3有自动Ajax for h:commandbutton和DOM rerender for Update components。非常感谢。几天来我一直在寻找类似的解决方案。再次感谢!对于使用较新版本的
ICEFACES
,您需要使用
JavaScriptRunner.runScript(FacesContext.getCurrentInstance(),“toggleDisplay('msgDiv','none');
,请检查
<script>
function toggleDisplay(id,style)
{
  document.getElementById(id).style.display = style;  
}
</script>
    <div id="msgDiv" style="display:none">Processing ..</div>
    <h:commandButton action="#{mybean.doUpdate}"
          onclick="toggleDisplay('msgDiv','visible')"/>
    public class MyBean{
    ....
    doUpdate(ActionEvent e){
    //do stuff
     JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(),
        "toggleDisplay('msgDiv','none');")
    }
}