It turns out this is a bug in JSF. I'll give the solution in just a moment, but 
first, my proposed solution above to getting the left navigation links to work 
on the default page before logging in actually causes other problems once you 
do log in. So there is a bug here, but the bug is either that the login screen 
should not have "Home", "Administration", and "Monitoring" links, OR a separate 
block of code should address the not-logged-in vs. logged-in situations. I 
suppose this could be done with a conditional block or adding a header3.jsp, 
and header2.jsp could be used prior to login, and header3.jsp could be used 
after login. 

Now to the problem: 


  | java.lang.IllegalStateException: Client-id : _id1 is duplicated in the 
faces tree.
  | 

Apparently this is a JSF bug, and it is caused by a problem in auto-assigning 
of component ID's to web components where ID's have not been specified (i.e., 
when created programmatically). The error is occurring in home.jsp, 
specifically in the block of code which creates the "Start new process 
execution" data table. The solution is to drop both data tables in home.jsp 
into subviews that have explicit ID's assigned to them. Here then is the entire 
code of home.jsp (with changes) that eliminate the _id1 duplication problem: 


  | <%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h" %>
  | <%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f" %>
  | 
  | <f:view>
  | 
  | <jsp:include page="header1.jsp" />
  | Home
  | <jsp:include page="header2.jsp" />
  | 
  | <b><h:messages /></b>
  | 
  | <h4>Tasklist</h4>
  | <f:subview id="taskInstanceTable">
  | <h:dataTable value="#{homeBean.taskInstances}" var="taskInstance" 
headerClass="tableheader" columnClasses="tablecell">
  |   <h:column >
  |     <f:facet name="header">
  |       <h:outputText value="Task Form Link" />
  |     </f:facet>
  |     <h:commandLink action="#{homeBean.selectTaskInstance}">
  |       <f:param name="taskInstanceId" value="#{taskInstance.id}"/>
  |       <h:outputText value="#{taskInstance.name}" />
  |     </h:commandLink>
  |   </h:column>
  |   <h:column>
  |     <f:facet name="header">
  |       <h:outputText value="Process" />
  |     </f:facet>
  |     <h:outputText 
value="#{taskInstance.taskMgmtInstance.taskMgmtDefinition.processDefinition.name}"
 />
  |   </h:column>
  |   <h:column>
  |     <f:facet name="header">
  |       <h:outputText value="Version" />
  |     </f:facet>
  |     <h:outputText 
value="#{taskInstance.taskMgmtInstance.taskMgmtDefinition.processDefinition.version}"
 />
  |   </h:column>
  | </h:dataTable> 
  | </f:subview>
  | 
  | <h4>Start New Process Execution</h4>
  | <f:subview id="processInstanceTable">
  | <h:dataTable value="#{homeBean.latestProcessDefinitions}" 
var="processDefinition" headerClass="tableheader" columnClasses="tablecell">
  |   <h:column>
  |     <f:facet name="header">
  |       <h:outputText value="Start Process Link" />
  |     </f:facet>
  |     <h:commandLink action="#{homeBean.startProcessInstance}">
  |       <f:param name="processDefinitionId" value="#{processDefinition.id}"/>
  |       <h:outputText 
value="#{processDefinition.taskMgmtDefinition.startTask.name}" />
  |     </h:commandLink>
  |   </h:column>
  |   <h:column>
  |     <f:facet name="header">
  |       <h:outputText value="Process" />
  |     </f:facet>
  |     <h:outputText value="#{processDefinition.name}" />
  |   </h:column>
  |   <h:column>
  |     <f:facet name="header">
  |       <h:outputText value="Version" />
  |     </f:facet>
  |     
  |     <h:outputText value="#{processDefinition.version}" />
  |   </h:column>
  | </h:dataTable> 
  | </f:subview>
  | 
  | <jsp:include page="footer.jsp" />
  | </f:view>
  | 

If similar duplicate ID problems are happening elsewhere, I'd try the same 
approach, of wrapping data tables in subviews and explicitly assigning id 
values to them. 

Cheers,

Brad

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3957569#3957569

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3957569
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to