PrimeFaces 3.0 - <p:tree> </p:tree>的PPR上的JavaScript错误

时间:2011-08-04 14:29:37

标签: tree jsf-2 primefaces

这个问题主要针对PrimeFaces开发团队,但也许其他人知道解决方法。我无法在PrimeFaces支持论坛上上传截图,但我可以在这里链接到我的问题。

在这里发布在PrimeFaces论坛: http://www.primefaces.org/forum/viewtopic.php?f=3&t=14203&sid=5a4e3dad45f2978e9a896fc5fdb17d50

使用PrimeFaces 3.0 <p:tree>组件时遇到JavaScript错误。我已经汇总了一个非常简单的例子来说明:

第一次成功渲染包含树的页面。

注意:expanded="true"属性被完全忽略,但这是一个不同的问题。

initial page draw - OK

展开树上的任何节点。

node is expanded on tree

最后,我点击页面上的命令按钮,除了触发<p:tree>的部分页面渲染外什么都不做。发生JavaScript错误。

PPR causes JavaScript error

错误代码文字是:

Line: 17
Char: 5725
Error: Could not complete the operation due to error 80020101
Code: 0

以下是Facelet页面中的相关代码:

<h:form id="contentForm">
    <p:outputPanel layout="block">
        <p:commandButton
                ajax="true"
                process="@this"
                update="treeArea"
                value="Redraw Tree" />
    </p:outputPanel>

    <p:outputPanel id="treeArea" layout="block">
        <p:tree
                value="#{treeTestBean.trivialTreeRoot}" 
                var="node" 
                expanded="true"
                update="selectedEntityName">
            <p:treeNode>
                <h:outputText value="#{node}" />
            </p:treeNode>
        </p:tree>
    </p:outputPanel>
</h:form>

以下是bean的相关代码:

@SuppressWarnings("unused")
public TreeNode getTrivialTreeRoot() {
    TreeNode root = new DefaultTreeNode("Root", null);
    TreeNode node0 = new DefaultTreeNode("Node 0", root);
    TreeNode node1 = new DefaultTreeNode("Node 1", root);
    TreeNode node2 = new DefaultTreeNode("Node 2", root);

    TreeNode node00 = new DefaultTreeNode("Node 00", node0);
    TreeNode node01 = new DefaultTreeNode("Node 01", node0);

    TreeNode node010 = new DefaultTreeNode("Node 010", node01);
    return root;
}

我正在使用当前的PrimeFaces 3.0-M3-SNAPSHOT与Mojarra 2.1.1和Tomcat 7.0.14。浏览器是IE 7。

知道如何解决这个问题吗?这对我来说是一个节目,因为我需要一种在我的webapp中显示树视图的方法。一旦发生JavaScript错误,它会使页面上的所有其他PrimeFaces组件无响应。

1 个答案:

答案 0 :(得分:2)

根据PrimeFaces this reply的主角:

  

已登录问题跟踪器,应在M3中修复