2012-10-18 41 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,以確定哪個標籤導致問題。