JSF ui: insertChildren хорошо, когда компонент находится в том же проекте, завершается неудачей, когда он находится в taglib - PullRequest
1 голос
/ 15 сентября 2011

У меня довольно простой JSF-компонент:

<composite:interface>
</composite:interface>

<composite:implementation>
    <mytaglib:jquery-ui/>
    <h:outputScript target="head" library="com.mytaglib.mytaglib" name="dockwidget/dockwidget.js"/>
    <f:subview>
    <div id="${component.clientId}_div">
        <composite:insertChildren/>
    </div>
    <script>
    $(document).ready(function() {
        setTimeout("$(document.getElementById('${component.clientId}_div')).dockWidget();", 50);
    });
    </script>       
    </f:subview>

Я включил это в jar taglib (проект maven, связанный в Eclipse) с обязательной записью в mytaglib.taglib.xml.Когда я использую это таким образом, тогда insertChildren, похоже, не подхватывает детей.Все остальное отображается нормально - включая тест «Hello World», если я вставлю его в div в элементе управления.

Если я возьму файл xhtml и поместу его в resources / localcontrols и сошлюсь на эту копию на моей странице.xhtml это работает, и дочерние компоненты включены.

Это нормально?

Спасибо - Ричард

(В качестве отступления - setTimeout, потому что мой макет JavaScript тоже работалрано - до того, как дочерние компоненты будут полностью обработаны. Интересно, есть ли в JQuery способ правильно решить эту проблему?)

...