我有一个相当简单的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>
我在taglib jar(在Eclipse中链接的maven项目)中包含了mytaglib.taglib.xml中的必需条目。当我以这种方式使用它时,insertChildren似乎没有接收孩子。其他一切都很好 - 包括测试“Hello World”,如果我将它插入控件中的div。
如果我将xhtml文件放在resources / localcontrols下并在我的page.xhtml中引用该副本,它就可以工作,并且包含子组件。
这是正常的吗?
由于 - 理查德
(顺便说一下 - setTimeout因为我的布局javascript运行得太早 - 在子组件完全呈现之前。我想知道JQuery是否有办法正确解决这个问题。)