【发布时间】:2011-08-04 14:29:36
【问题描述】:
这个问题主要针对 PrimeFaces 开发团队,但也许其他人知道解决方法。我无法在 PrimeFaces 支持论坛上上传屏幕截图,但我可以在此处链接到我的问题。
在此处发布在 PrimeFaces 论坛上: http://www.primefaces.org/forum/viewtopic.php?f=3&t=14203&sid=5a4e3dad45f2978e9a896fc5fdb17d50
我在使用 PrimeFaces 3.0 <p:tree> 组件时遇到 JavaScript 错误。我整理了一个非常简单的例子来说明:
包含树的页面第一次渲染成功。
注意:expanded="true" 属性被完全忽略,但这是一个不同的问题。
展开树上的任意节点。
最后我点击页面上的一个命令按钮,除了触发<p:tree> 的部分页面渲染之外什么都不做。发生 JavaScript 错误。
错误代码文本为:
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。
知道如何解决这个问题吗?这对我来说很重要,因为我需要一种在我的 web 应用程序中显示树视图的方法。一旦发生 JavaScript 错误,它会使页面上的所有其他 PrimeFaces 组件无响应。
【问题讨论】:
标签: tree jsf-2 primefaces