I am trying to create a component using Facelet Tags.  The component uses a
Trinidad NavigationPane (tr:NavigationPane).  I am trying to make this
component reusable by passing a collection of "options" to it.  Each option
represents a commandNavigationItem

Here is the component

<!--facelets/components/tabNavigation.xhtml-->

<div
   xmlns="http://www.w3.org/1999/xhtml";
   xmlns:f="http://java.sun.com/jsf/core";
   xmlns:ui="http://java.sun.com/jsf/facelets";
   xmlns:tr="http://myfaces.apache.org/trinidad";>

    <tr:form>
        <tr:panelGroupLayout layout="horizontal">
            <tr:navigationPane hint="tabs">
                <ui:repeat value="#{tabs}" var="tab">
                   <tr:commandNavigationItem
                       text="#{tab.label}"
                       selected="#{tab.selected}"
                       partialSubmit="true"/>

                </ui:repeat>
            </tr:navigationPane>
        </tr:panelGroupLayout>
    </tr:form>
</div>

Here is my usage

<stl:tabNavigation
   tabs="#{AddressLookupBacking.tabOptions}"
   bean="#{AddressLookupBacking}"/>

I am initializing the tabOptions list in Faces-Config

Here is the tab lib
<facelet-taglib>
   <namespace>http://stlouiscity.com/jsf/csb</namespace>
   <tag>
       <tag-name>tabNavigation</tag-name>
       <source>facelets/components/tabNavigation.xhtml</source>
   </tag>
</facelet-taglib>

Here is my problem

SEVERE: Warning: illegal component hierarchy detected, expected UIXCommand
but found another type of component instead.
java.lang.ClassCastException: com.sun.facelets.component.UIRepeat
   at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.NavigationPaneRenderer.renderContent
(NavigationPaneRenderer.java:120)
   at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.NavigationPaneRenderer.encodeAll
(NavigationPaneRenderer.java:83)
   at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(
CoreRenderer.java:184)
   at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(
UIXComponentBase.java:700)
   at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(
UIXCollection.java:495)
   at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(
CoreRenderer.java:263)
   at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelGroupLayoutRenderer.encodeChild
(PanelGroupLayoutRenderer.java:169)
   at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelGroupLayoutRenderer._encodeChildren
(PanelGroupLayoutRenderer.java:140)
   at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.PanelGroupLayoutRenderer.encodeAll
(PanelGroupLayoutRenderer.java:92)
   at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(
CoreRenderer.java:184)
   at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(
UIXComponentBase.java:700)
   at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java:242)
   at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java:239)
   at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(
ComponentSupport.java:239)
   at com.sun.facelets.FaceletViewHandler.renderView(
FaceletViewHandler.java:580)
   at
org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(
ViewHandlerImpl.java:178)
   at com.sun.faces.lifecycle.RenderResponsePhase.execute(
RenderResponsePhase.java:107)
   at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
   at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
   at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
   at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter
(TrinidadFilterImpl.java:327)
   at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(
TrinidadFilterImpl.java:291)
   at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(
TrinidadFilterImpl.java:214)
   at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(
TrinidadFilter.java:93)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:202)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
   at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(
ReplyHeaderFilter.java:96)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:202)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
   at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)
   at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(
SecurityAssociationValve.java:175)
   at org.jboss.web.tomcat.security.JaccContextValve.invoke(
JaccContextValve.java:74)
   at org.apache.catalina.core.StandardHostValve.invoke(
StandardHostValve.java:126)
   at org.apache.catalina.valves.ErrorReportValve.invoke(
ErrorReportValve.java:105)
   at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:107)
   at org.apache.catalina.connector.CoyoteAdapter.service(
CoyoteAdapter.java:148)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:869)
   at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:664)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)
   at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(
MasterSlaveWorkerThread.java:112)
   at java.lang.Thread.run(Thread.java:595)

It seems that Trinidad is getting hung up on the ui:repeat facelet tag.  I
am just learning both Facelets and Trinidad so any help would be greatly
appreciated.

I have posted this both the the Facelets and Trinidad User Lists

Reply via email to