从支持 bean 重新加载页面

Reload page from backing bean

在我的代码中,我正在扩展左框架中的 treeNode,它是通过右框架中存在的导航 links 选择的。它有效,但每次我单击右框架上的 link 时,我都必须手动刷新右框架。我尝试使用 javascript 代码从支持 bean 重新加载页面,但它不起作用。谁能帮我弄清楚为什么它没有被执行。

在此先感谢您的帮助。

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

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

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

}

你需要结合一个 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 or simply look to this SO post

希望对你有所帮助。