У меня довольно простой 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 способ правильно решить эту проблему?)