1
這裏是我的網頁的作品:PrimeFaces 3.0.M4 <P:cellEditor的> NullPointerException異常
<html xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:head>
</h:head>
<h:body>
<h:form>
<p:dataTable value="#{testBean.testList}" var="test">
<p:column>
<h:outputText value="#{test}" />
</p:column>
</p:dataTable>
</h:form>
</h:body>
</f:view>
</html>
這裏是我的網頁不能正常工作:
<html xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:head>
</h:head>
<h:body>
<h:form>
<p:dataTable value="#{testBean.testList}" var="test">
<p:column>
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{test}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{test}" style="width:100%" />
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:rowEditor />
</p:column>
</p:dataTable>
</h:form>
</h:body>
</f:view>
</html>
這裏是我收到的錯誤:
Nov 22, 2011 10:17:05 PM org.apache.myfaces.renderkit.ErrorPageWriter handleThrowable
SEVERE: An exception occurred
javax.faces.FacesException: java.lang.NullPointerException
at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241)
at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:258)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
at javax.faces.component.UIData.restoreDescendantComponentStates(UIData.java:718)
at javax.faces.component.UIData.restoreDescendantComponentStates(UIData.java:729)
at javax.faces.component.UIData.restoreDescendantComponentStates(UIData.java:729)
at javax.faces.component.UIData.setRowIndexWithoutPreserveComponentState(UIData.java:580)
at javax.faces.component.UIData.setRowIndex(UIData.java:500)
at org.primefaces.component.datatable.DataTableRenderer.encodeTbody(DataTableRenderer.java:604)
at org.primefaces.component.datatable.DataTableRenderer.encodeRegularTable(DataTableRenderer.java:227)
at org.primefaces.component.datatable.DataTableRenderer.encodeMarkup(DataTableRenderer.java:205)
at org.primefaces.component.datatable.DataTableRenderer.encodeEnd(DataTableRenderer.java:97)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:519)
at javax.faces.component.UIData.encodeEnd(UIData.java:1416)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:672)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:668)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:668)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:668)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1483)
at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:281)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:85)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239)
... 17 more
似乎只有當我把單元格編輯器中發生的,我所做的bean作爲簡約越好。有什麼想法嗎?
嗨Spauny,感謝您的及時回覆。我最初正在處理具有屬性的對象列表,並且正在接收相同的錯誤,我只是爲了舉例而簡化了它。也許我會給Mojorra實施一下。 – jimmy
@jimmy你做**沒有**必須改變實施,因爲這個錯誤:**試着處理它** ...如果這與Mojarra正常工作,並在一段時間後,你會得到另一個錯誤?你變回MyFaces?這很荒唐!告訴我你想做什麼/嘗試,發佈代碼並處理問題!此外,最新的MyFaces版本與您的服務器(servlet容器)兼容也很重要! – spauny
這是一個公平點。我正在評估各種實現。 PrimeFaces看起來像一個很棒的組件套件,它只是我嘗試使用的第一個組件實際上並沒有工作。我將不得不再看一看。謝謝。 – jimmy