JSF Tomahawk tree2 - submit()上的空指针错误?

时间:2012-03-27 14:50:24

标签: jsf tree myfaces tomahawk

我添加了一个JSF Tomahawk t:tree2 UI组件,页面呈现得很好。但是,只要我在页面上执行任何操作:单击发送submit()的按钮,或按下带有操作参数设置的按钮,报告错误:

java.lang.NullPointerException

viewId=/job.xhtml
location=trunk\tce\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\EWC\job.xhtml
phaseId=RESTORE_VIEW(1)

Caused by:
java.lang.NullPointerException
at org.apache.myfaces.custom.tree2.UITreeData.getDataModel(UITreeData.java:701)

这是一个堆栈跟踪:

java.lang.NullPointerException
at org.apache.myfaces.custom.tree2.UITreeData.getDataModel(UITreeData.java:701)
at org.apache.myfaces.custom.tree2.UITreeData.setNodeId(UITreeData.java:387)
at org.apache.myfaces.custom.tree2.AbstractHtmlTree.setNodeId(AbstractHtmlTree.java:101)
at org.apache.myfaces.custom.tree2.UITreeData.visitTree(UITreeData.java:541)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:958)
at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1073)
at javax.faces.component.UIData.visitTree(UIData.java:2169)
at javax.faces.component.UIForm.visitTree(UIForm.java:354)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:958)
at javax.faces.component.UIComponentBase.visitTree(UIComponentBase.java:1073)
at org.apache.myfaces.lifecycle.DefaultRestoreViewSupport.processComponentBinding(DefaultRestoreViewSupport.java:105)
at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:146)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:112)
at com.mainconcept.rews.webclient.controller.MyFacesServletWrapper.service(MyFacesServletWrapper.java:44)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
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.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

引发异常的位置是在开始时,支持bean甚至不再被实例化:

MyFacesServlet::service(ServletRequest request, ServletResponse response)

xhtml页面中的代码:

<h:dataTable value="#{JobMgmtBean.presetsTreesList}" var="presetsTree">
                                    <h:column>  

                                    <t:tree2  
                                              value             =   "#{presetsTree}" 
                                              var               =   "presetsTreeNode"
                                              varNodeToggler    =   "t" 
                                              showLines         =   "true" 
                                              showRootNode      =   "true"
                                              showNav           =   "true" 
                                              clientSideToggle  =   "true"
                                              preserveToggle    =   "true"> 

                                            <f:facet name="facetPresetTree">        
                                                <h:panelGroup>                  
                                                    <h:selectBooleanCheckbox     
                                                                                value               = "#{JobMgmtBean.idsT2[presetsTreeNode.identifier]}"
                                                                                title               = "#{presetsTreeNode.identifier}"
                                                                                valueChangeListener ="#{JobMgmtBean.setPresetsTreeNodeState}"
                                                                                />
                                                    <h:outputText value="#{presetsTreeNode.description}" styleClass="text"/>
                                                </h:panelGroup>                  
                                            </f:facet>
                                    </t:tree2>
                                    </h:column>
                                    </h:dataTable>

相关的bean成员:

protected List<TreeNodeChecked> presetsTreesList;
private HashMap<String, Boolean> idsT2;

可能是什么原因?

0 个答案:

没有答案
相关问题