0

您如何在另一个组合的实现标记中调用 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>

关于如何处理这个问题的任何其他设计建议?

感谢您分享您的想法。

4

2 回答 2

1

这可以识别为Mojarra 问题 2437,该问题已在 Mojarra 2.1.10(2012 年 7 月 25 日发布)中修复。看起来您使用的是相当过时的 Mojarra 版本。目前已经是 2.1.25(2.2.x 甚至已经出来了,但我不建议现在切换到 2.2,让他们先解决所有儿童疾病)。

于 2013-08-13T13:05:32.453 回答
0

好的,我将复合目录的命名空间声明从<html xmlns...标记移到了<composite:implementation>标记中。

所以复合看起来像这样:

<composite:implementation xmlns:mywidgets="http://java.sun.com/jsf/composite/widgets">

否则,父子组合的命名空间将错误地解析。

于 2013-08-13T07:08:37.017 回答