Jsf Richfaces嵌套Accordion中的空指针异常
我正在使用RichFaces4.2.2,并尝试使用相同的方法实现嵌套的accordion。其Facelet代码如下所示:Jsf Richfaces嵌套Accordion中的空指针异常,jsf,jsf-2,richfaces,Jsf,Jsf 2,Richfaces,我正在使用RichFaces4.2.2,并尝试使用相同的方法实现嵌套的accordion。其Facelet代码如下所示: <h:form id="accordForm"> <rich:accordion switchType="client" activeItem="#{projectCreation.activeTab}"> <c:forEach var="proj" items="#{projectCreation.projects}"&
<h:form id="accordForm">
<rich:accordion switchType="client" activeItem="#{projectCreation.activeTab}">
<c:forEach var="proj" items="#{projectCreation.projects}">
<rich:accordionItem name="#{proj.description}">
<f:facet name="header">#{proj.description}</f:facet>
<h:form>
<rich:accordion switchType="client" activeItem="#{projectCreation.activeModuleTab}" rendered="#{proj.modules[0]!=null}">
<c:forEach var="mdle" items="#{proj.modules}">
<rich:accordionItem name="#{mdle.description}">
<f:facet name="header">#{mdle.description}</f:facet>
<t:dataList var="subMdle" value="#{mdle.subModules}" layout="unorderedList">
<h:outputText value="#{subMdle.description}"></h:outputText>
</t:dataList>
</rich:accordionItem>
</c:forEach>
</rich:accordion>
</h:form>
</rich:accordionItem>
</c:forEach>
</rich:accordion>
</h:form>
有人知道为什么会这样吗?删除activeItem属性并将id属性设置为rich:accordion。为我工作。祝你好运 它返回
projectCreation.getActiveTab()
返回null
。你能在调试器中检查这个吗?它不是null
,我已经检查过了。实际上,在实现嵌套手风琴之前,我已经实现了简单的手风琴,它工作得很好。看看这个:@Christophe Roussyc:forEach
的工作方式与ui:repeat
不同。因此,您无法使该链接适用于此问题。是否正确读取了您的{proj.description}
属性?当你进行迭代时,检查他们是否已经有了值。回答得好,但是当你帮助提供代码的人时,总是尝试给他们固定的代码示例,解释更改,以及为什么这些更改对解决他们的问题很重要。这样,用户下次有一个样本要处理,他知道根据样本和您的答案要做什么,为什么要这样做。@Diana感谢您的回答,但我刚刚使用了一些解决问题的方法。然而,正如我所想,activeItem属性是必要的,因为我需要保持对所选accordion的检查,我认为id与此无关,因为jsf隐式生成id属性。
java.lang.NullPointerException
org.richfaces.component.AbstractAccordion.getActiveItem(AbstractAccordion.java:66)
org.richfaces.component.AbstractTogglePanel.encodeBegin(AbstractTogglePanel.java:166)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1777)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779)
org.richfaces.renderkit.RendererBase.renderChildren(RendererBase.java:276)
org.richfaces.renderkit.html.TogglePanelItemRenderer.doEncodeChildren(TogglePanelItemRenderer.java:136)
org.richfaces.renderkit.html.AccordionItemRenderer.doEncodeChildren(AccordionItemRenderer.java:93)
org.richfaces.renderkit.RendererBase.encodeChildren(RendererBase.java:157)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779)
org.richfaces.renderkit.RendererBase.renderChildren(RendererBase.java:276)
org.richfaces.renderkit.html.TogglePanelRenderer.doEncodeChildren(TogglePanelRenderer.java:127)
org.richfaces.renderkit.RendererBase.encodeChildren(RendererBase.java:157)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:437)
com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124)
javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:286)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
com.hcl.common.filter.MySessionFilter.doFilter(MySessionFilter.java:90)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)