从支持bean重新加载页面

时间:2017-03-18 06:06:48

标签: jsf primefaces reload

在我的代码中,我在左框架中展开了通过右框架中存在的导航链接选择的treeNode。它工作,但每次我点击右框架上的链接,我必须手动刷新右框架。我尝试使用javascript代码从支持bean重新加载页面,但它无法正常工作。任何人都可以帮我弄清楚它为什么没有被执行。

先谢谢你帮助我。

以下是我正在使用的代码。

public void expandTreeView( TreeNode selectedNode )
{
    if ( selectedNode != null )
    {
        selectedNode.getParent().setExpanded( true );

    }
    RequestContext rc = RequestContext.getCurrentInstance();
    rc.execute("window.location.reload(true)");

}

1 个答案:

答案 0 :(得分:1)

您需要将JS函数与remoteCommand结合使用,它将如下所示:

<强> myHTML.xhtml

<p:commandLink id="commandLink" onclick="myFunction(nodeSelected)"  >
...
</p:commandLink>   

还添加一个JS函数

<script type="text/javascript">
   function myFunction(x) {                                
       ...                                
    }    
</script>

最后将它与p:remoteCommand结合起来,它允许你从JS函数调用一个managedBean方法

您可以看到Primefaces remoteCommand Example或只是查看此SO帖子Invoking a p:remoteCommand via a JavaScript function passing a message local to that function to another function through the “oncomplete” handler

希望能帮到你。