最近在学richfaces 可是我用MYECLIPSE6.0运行它官方DEMO的时候遇到一个问题 报错如下: javax.servlet.ServletException: java.lang.IllegalArgumentException: could not find dataTable with id 'carList' javax.faces.webapp.FacesServlet.service(FacesServlet.java:154) 
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) 
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) 
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) 
root cause javax.faces.FacesException: java.lang.IllegalArgumentException: could not find dataTable with id 'carList' 
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:425) 
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211) 
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) 
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216) 
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) 
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) 
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) 
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) 
root cause org.apache.jasper.JasperException: java.lang.IllegalArgumentException: could not find dataTable with id 'carList' 
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419) 
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211) 
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) 
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216) 
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) 
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) 
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) 
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) 
root cause java.lang.IllegalArgumentException: could not find dataTable with id 'carList' 
org.richfaces.component.UIDatascroller.getDataTable(UIDatascroller.java:207) 
org.richfaces.renderkit.html.DatascrollerTemplate.doEncodeEnd(DatascrollerTemplate.java:178) 
org.richfaces.renderkit.html.DatascrollerTemplate.doEncodeEnd(DatascrollerTemplate.java:639) 
org.ajax4jsf.renderkit.RendererBase.encodeEnd(RendererBase.java:135) 
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539) 
javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:498) 
javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:366) 
org.apache.jsp.MyJsp_jsp._jspx_meth_rich_005fdatascroller_005f0(MyJsp_jsp.java:209) 
org.apache.jsp.MyJsp_jsp._jspx_meth_h_005fform_005f0(MyJsp_jsp.java:173) 
org.apache.jsp.MyJsp_jsp._jspx_meth_f_005fview_005f0(MyJsp_jsp.java:137) 
org.apache.jsp.MyJsp_jsp._jspService(MyJsp_jsp.java:94) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419) 
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211) 
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) 
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216) 
org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) 
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) 
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) 
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) 请问这是什么原因啊? 看字面意思我已经定义了ID carList 可是它为什么还是提示找不到呢? 
请麻烦看看! 

解决方案 »

  1.   

    这是我的页面代码: <%@ page language="java" pageEncoding="ISO-8859-1"%> 
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
    <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> 
    <%@ taglib uri="http://richfaces.org/rich" prefix="rich" %> <html> <body> 
    <f:view> 
    <style> 
    .col { 
    width:100px; 

    </style> <h:form> 
    <rich:datascroller align="left" for="carList" maxPages="20" /> 
    <rich:spacer height="30" /> 
    <rich:dataTable width="483" id="carList" rows="10" columnClasses="col" 
    value="#{dataTableScrollerBean.allCars}" var="category"> 
    <f:facet name="header"> 
    <rich:columnGroup> 
    <h:column> 
    <h:outputText styleClass="headerText" value="Make" /> 
    </h:column> 
    <h:column> 
    <h:outputText styleClass="headerText" value="Model" /> 
    </h:column> 
    <h:column> 
    <h:outputText styleClass="headerText" value="Price" /> 
    </h:column> 
    <h:column> 
    <h:outputText styleClass="headerText" value="Mileage" /> 
    </h:column> 
    </rich:columnGroup> 
    </f:facet> <h:column> 
    <h:outputText value="#{category.make}" /> 
    </h:column> 
    <h:column> 
    <h:outputText value="#{category.model}" /> 
    </h:column> 
    <h:column> 
    <h:outputText value="#{category.price}" /> 
    </h:column> 
    <h:column> 
    <h:outputText value="#{category.mileage}" /> 
    </h:column> </rich:dataTable> 
    </h:form> 
    </f:view> 
    </body> 
    </html> 
      

  2.   

    你的页面代码应该没有错`
    我这里也有相关的代码运行不会报错``
    是不是其他地方``
    你可以把<rich:datascroller   align="left"   for="carList"   maxPages="20"   /> 去掉再试试
    或将dataTable的ID名换一换试试