Oh, sorry.

<f:verbatim> is not a good idea. Please switch to rendering of jsf UIComponents with the rendered attribute.

<tc:image value="image/navigate-pointer.gif" width="16px" height="16px" rendered= "#{navigationController.currentPage == 'edit/editFuelling'}"/>

or
rendered="#{facesContext.viewRoot.viewId == '/list.xml'"

Regards

Bernd


Bernd Bohmann schrieb:
I think it is an tobago issue.

Working on it.

Regards

Bernd

Stefan Hedtfeld schrieb:

Hi,

I built a navigation like the one in the tobago examples. But I get the following error:

19:53:21,601 INFO  [NavigationController] action = 'edit/editFuelling'
19:53:21,608 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception java.lang.ClassCastException: org.apache.myfaces.tobago.component.UICommand at org.apache.myfaces.taglib.core.VerbatimTag.doAfterBody(VerbatimTag.java:76) at org.apache.jsp.fuelmaster.navigator_jsp._jspx_meth_f_verbatim_1(org.apache.jsp.fuelmaster.navigator_jsp:372) at org.apache.jsp.fuelmaster.navigator_jsp._jspService(org.apache.jsp.fuelmaster.navigator_jsp:136) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966) at org.apache.jsp.tag.web.layout.fuelmaster_tag._jspx_meth_tc_cell_1(org.apache.jsp.tag.web.layout.fuelmaster_tag:335) at org.apache.jsp.tag.web.layout.fuelmaster_tag._jspx_meth_tc_page_0(org.apache.jsp.tag.web.layout.fuelmaster_tag:197) at org.apache.jsp.tag.web.layout.fuelmaster_tag._jspx_meth_f_view_0(org.apache.jsp.tag.web.layout.fuelmaster_tag:123) at org.apache.jsp.tag.web.layout.fuelmaster_tag.doTag(org.apache.jsp.tag.web.layout.fuelmaster_tag:78) at org.apache.jsp.intro_jsp._jspx_meth_layout_fuelmaster_0(org.apache.jsp.intro_jsp:84) at org.apache.jsp.intro_jsp._jspService(org.apache.jsp.intro_jsp:62) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415) at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234) at org.apache.myfaces.tobago.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:117) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
        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.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.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174) 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:868) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663) 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)

My navigator.jsp contains the following:

<%@ page import="javax.faces.context.FacesContext"%>
<%@ taglib uri="http://myfaces.apache.org/tobago/component"; prefix="tc" %>
<%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core"; prefix="c" %>
<f:subview id="navigator" >
  <tc:panel>
    <f:facet name="layout">
      <tc:gridLayout columns="10px;1*"
         rows="fixed;fixed;fixed;1*" />
    </f:facet>
    <%
// FIXME: this hotfix ensures that, "navigationController" is available
      // for JSTL-Tags
      FacesContext facesContext = FacesContext.getCurrentInstance();
      facesContext.getApplication().getVariableResolver()
          .resolveVariable(facesContext, "navigationController");
    %>
        <%-- row 0 --%>
    <f:verbatim>
      <c:if test='${navigationController.currentPage == "intro"}'>
<tc:image value="image/navigate-pointer.gif" width="16px" height="16px" />
      </c:if>
    </f:verbatim>
    <tc:link action="intro" immediate="true"
actionListener="#{navigationController.navigate}" label="#{mainBundle.intro}" />
        <%-- row 1 --%>
    <f:verbatim>
<c:if test='${navigationController.currentPage == "edit/editFuelling"}'> <tc:image value="image/navigate-pointer.gif" width="16px" height="16px" />
      </c:if>
    </f:verbatim>
    <tc:link action="edit/editFuelling" immediate="true"
actionListener="#{navigationController.navigate}" label="#{mainBundle.intro}" />
        <%-- row (n - 1) --%>
    <tc:cell spanX="2">
      <f:verbatim>
        <hr width="80%"/>
      </f:verbatim>
    </tc:cell>
        <%-- row n --%>
    <tc:cell spanX="2"/>
  </tc:panel>
</f:subview>

I'm running on JBoss 4.0.4RC1 with the bundled tomcat on SuSE Linux 10, amd64.

The generated navigator_jsp.java class contains the following method:

*private* boolean _jspx_meth_f_verbatim_1(javax.servlet.jsp.tagext.JspTag _jspx_th_tc_panel_0, PageContext _jspx_page_context)
          *throws* *Throwable* {
    PageContext pageContext = _jspx_page_context;
    JspWriter out = _jspx_page_context.getOut();
    ///  f:verbatim/
org.apache.myfaces.taglib.core.VerbatimTag _jspx_th_f_verbatim_1 = (org.apache.myfaces.taglib.core.VerbatimTag) _jspx_tagPool_f_verbatim.get(org.apache.myfaces.taglib.core.VerbatimTag.class);
    _jspx_th_f_verbatim_1.setPageContext(_jspx_page_context);
_jspx_th_f_verbatim_1.setParent((javax.servlet.jsp.tagext.Tag) _jspx_th_tc_panel_0);
    int _jspx_eval_f_verbatim_1 = _jspx_th_f_verbatim_1.doStartTag();
*if* (_jspx_eval_f_verbatim_1 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) { *if* (_jspx_eval_f_verbatim_1 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
        out = _jspx_page_context.pushBody();
_jspx_th_f_verbatim_1.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
        _jspx_th_f_verbatim_1.doInitBody();
      }
      *do* {
        out.write("\n");
        out.write("      ");
*if* (_jspx_meth_c_if_1(_jspx_th_f_verbatim_1, _jspx_page_context))
          *return* *true*;
        out.write("\n");
        out.write("    ");
        int evalDoAfterBody = _jspx_th_f_verbatim_1.doAfterBody();
*if* (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
          *break*;
      } *while* (*true*);
*if* (_jspx_eval_f_verbatim_1 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE)
        out = _jspx_page_context.popBody();
    }
*if* (_jspx_th_f_verbatim_1.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _jspx_tagPool_f_verbatim.reuse(_jspx_th_f_verbatim_1);
      *return* *true*;
    }
    _jspx_tagPool_f_verbatim.reuse(_jspx_th_f_verbatim_1);
    *return* *false*;
  }

line 372 beeing

int evalDoAfterBody = _jspx_th_f_verbatim_1.doAfterBody();

Is this a tobago issue, a myfaces issue or a "beginners" issue?

Regards,

Stefan.




--
Dipl.-Ing. Bernd Bohmann - Atanion GmbH - Software Development
Bismarckstr. 13, 26122 Oldenburg, http://www.atanion.com
phone: +49 441 4082312, mobile: +49 173 8839471, fax: +49 441 4082333

Reply via email to