PrimeFaces 3.0 - ошибка JavaScript на PPR <p: tree> - PullRequest
2 голосов
/ 04 августа 2011

Этот вопрос в основном направлен на команду разработчиков PrimeFaces, но, возможно, кто-то знает обходной путь. Я не могу загрузить скриншоты на форумах поддержки PrimeFaces, но я могу дать ссылку на свой вопрос здесь.

Размещено на форумах PrimeFaces здесь: http://www.primefaces.org/forum/viewtopic.php?f=3&t=14203&sid=5a4e3dad45f2978e9a896fc5fdb17d50

Я обнаружил ошибки JavaScript при использовании компонента PrimeFaces 3.0 <p:tree>. Я собрал очень простой пример для иллюстрации:

Страница, содержащая дерево, успешно отображается в первый раз.

ПРИМЕЧАНИЕ. Свойство 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>

Вот соответствующий код от боба:

@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.

Есть идеи, как я могу обойти это? Для меня это showtopper, так как мне нужен способ отображения дерева в моем веб-приложении. Как только возникает ошибка JavaScript, все остальные компоненты PrimeFaces на странице перестают отвечать на запросы.

1 Ответ

2 голосов
/ 05 августа 2011

По словам лидера PrimeFaces в этот ответ :

Уже зарегистрированный трекер ошибок, должен быть исправлен в M3

...