2012-10-18 42 views
2

我有一个JSF 2/CDI Web应用程序,动态配置管理的一些特定页面。它使用一个bean来决定加入哪个网页:JSF 2动态用户界面:包括不工作从2.1.7到2.1.9

<ui:include src="#{myBean.myDynamicPath}"/> 

为了有工作,我已经添加了我使用它到javax.faces.FULL_STATE_SAVING_VIEW_IDS背景param其中,网页和一切工作直到我将JSF库从2.1.7更新到2.1.9(并且它与最新版本有相同的问题)。

当我尝试执行页面上有些动作我弄了半天例外:

Oct 18, 2012 6:14:10 PM com.sun.faces.util.Util checkIdUniqueness 
SEVERE: JSF1007: Duplicate component ID tabs:imagesListForm:imagesListDG:j_idt55 found in view. 
Oct 18, 2012 6:14:10 PM com.sun.faces.util.Util checkIdUniqueness 
SEVERE: +id: j_id1 
    type: [email protected] 
     +id: javax_faces_location_HEAD 

     ... (all the view tree here) ... 

Oct 18, 2012 6:14:10 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException 
SEVERE: Error Rendering View[/admin/objects/edit.xhtml] 
java.lang.IllegalStateException: Component ID tabs:imagesListForm:imagesListDG:j_idt55 has already been found in the view. 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:842) 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:826) 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:826) 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:826) 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:826) 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:826) 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:826) 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:826) 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:826) 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:826) 
    at com.sun.faces.util.Util.checkIdUniqueness(Util.java:826) 
    at com.sun.faces.application.view.FaceletFullStateManagementStrategy.saveView(FaceletFullStateManagementStrategy.java:686) 
    at com.sun.faces.application.StateManagerImpl.saveView(StateManagerImpl.java:89) 
    at javax.faces.application.StateManager.getViewState(StateManager.java:553) 
    at com.sun.faces.context.PartialViewContextImpl.renderState(PartialViewContextImpl.java:417) 
    at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:300) 
    at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183) 
    at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:981) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:409) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124) 
    at com.ocpsoft.pretty.faces.application.PrettyViewHandler.renderView(PrettyViewHandler.java:163) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at uk.co.novaware.core.cdi.scope.ConversationFilter.doFilter(ConversationFilter.java:36) 
    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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) 
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) 
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412) 
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) 
    at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:137) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.jboss.solder.servlet.event.ServletEventBridgeFilter.doFilter(ServletEventBridgeFilter.java:74) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.jboss.solder.servlet.exception.CatchExceptionFilter.doFilter(CatchExceptionFilter.java:65) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at uk.co.novaware.core.cdi.scope.ConversationFilter.doFilter(ConversationFilter.java:36) 
    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:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    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:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:680) 

有怎样的方式用户界面:包括作品被改变?任何人有一些想法让它再次运作?我需要更新JSF库。

+0

你可以发布相关代码渲染组件“tabs:imagesListForm:imagesListDG:j_idt55”吗? – Ravi

+0

你好@Ravi,无论我放哪个代码都无所谓,它不会工作,在这种情况下,它是ap:dataTable里面的一个h:窗体里面ap:tab内ap:tabView,但我也尝试过添加简单的组件和结果是一样的... – demetrio812

+0

@Ravi不,我已经检查过,所有的id都是独一无二的......如果我使用JSF 2.1.7,它可以正常工作...... – demetrio812

回答

0

快速修复:尝试为所有元素指定ID值。并确保这些ID是唯一的。

您可以检查生成的html中生成的ID,以确定哪个标签导致问题。