2011-02-23 41 views
3

我在打開JSF頁面時檢索到此異常。這是如何造成的,我該如何解決?java.lang.IllegalStateException:Component [email protected] not expected type

org.apache.jasper.JasperException: An exception occurred processing JSP page /searchResultJSF.jsp at line 18 

15:  <body> 
16:   <h1>SEARCH RESULT</h1> 
17:  
18:   <h:dataTable id ="abc" value="#{SearchBean.dealerList}" var="dealer"> 
19:       <h:column> 
20:        <f:facet name="header" > 
21:         <h:outputText value="Dealer name "/> 


Stacktrace: 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) 
    com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) 
    com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442) 
    com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115) 
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) 
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) 
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) 
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) 

root cause 

javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.IllegalStateException: Component [email protected] not expected type. Expected: javax.faces.component.UIData. Perhaps you're missing a tag? 
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858) 
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) 
    org.apache.jsp.searchResultJSF_jsp._jspService(searchResultJSF_jsp.java:94) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) 
    com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) 
    com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442) 
    com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115) 
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) 
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) 
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) 
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) 

root cause 

java.lang.IllegalStateException: Component [email protected] not expected type. Expected: javax.faces.component.UIData. Perhaps you're missing a tag? 
    com.sun.faces.taglib.html_basic.DataTableTag.setProperties(DataTableTag.java:265) 
    javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:604) 
    javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1126) 
    com.sun.faces.taglib.html_basic.DataTableTag.doStartTag(DataTableTag.java:372) 
    org.apache.jsp.searchResultJSF_jsp._jspx_meth_h_005fdataTable_005f0(searchResultJSF_jsp.java:117) 
    org.apache.jsp.searchResultJSF_jsp._jspService(searchResultJSF_jsp.java:84) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) 
    com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:408) 
    com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:442) 
    com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:115) 
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) 
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) 
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) 
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:245) 
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) 

回答

6

這是最重要的一點:

javax.servlet.ServletException:javax.servlet.jsp.JspException:java.lang.IllegalStateException:組件[email protected]不預期類型。預期:javax.faces.component.UIData。也許你錯過了一個標籤?

你忘了在頁面中用JSF標籤包裝<f:view>。你的頁面看起來像這樣:

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
<!DOCTYPE html> 
<f:view> 
    <html lang="en"> 
     <head> 
      <title>Insert title here</title> 
     </head> 
     <body> 
      Insert content here 
     </body> 
    </html> 
</f:view> 
+0

我浪費了我的4個小時,然後用google搜索......一堆感謝解決方案:) – 2012-12-26 17:43:23

相關問題