如何在其他组合的实现标记中调用JSF2组合(小部件)?
当我这样做时,我得到以下error: /resources/widgets/tileContainer.xhtml @25,45 <mywidgets:tileContainer> Tag Library supports namespace: http://java.sun.com/jsf/composite/widgets, but no tag was defined for name: tileContainer
代码段是:
<composite:interface name="tileContainer">
<composite:attribute name="pubCategoryId" type="java.lang.Long" required="true" />
</composite:interface>
<composite:implementation>
<div class="tileContainer">
<ui:repeat value="#{pubController.getPubsByCategory(cc.attrs.pubCategoryId)}" var="pub">
#{pub.title}
<mywidgets:tileContainer title="Private">
<mywidgets:tileSmallPictureTitle
title="Bulk Dispatch Lapse stressed with application protocols">
</mywidgets:tileSmallPictureTitle>
</mywidgets:tileContainer>
</ui:repeat>
</div>
</composite:implementation>
关于如何处理此问题的任何其他设计建议?
感谢您分享您的想法。
答案 0 :(得分:1)
这被认为是Mojarra issue 2437,已在Mojarra 2.1.10(2012年7月25日发布)中修复。看起来你正在使用一个相当过时的Mojarra版本。它的currently已经在2.1.25(2.2.x甚至已经出局,但我现在不建议改用2.2,让他们先解决所有的儿童疾病。)
答案 1 :(得分:0)
好的,我将复合目录的名称空间声明从<html xmlns...
标记向下移动到<composite:implementation>
标记。
所以复合材料看起来像这样:
<composite:implementation xmlns:mywidgets="http://java.sun.com/jsf/composite/widgets">
否则,父组合和子组合的名称空间将错误地解析。