我正在将应用程序从 JSF1.2/MyFaces+Facelets 迁移到 JSF2.1/MyFaces。我有以下用于 JSF1.2/MyFaces+Facelets 的模板。
<ui:component>
<f:subview id="#{id}">
.
.
<script
function blockLinkClicks(){
//Disables all the HyperLink Controls to prevent repeated submits
var allLinks = document.getElementById("#{id}:treeNodeForm").getElementsByTagName('a');
var count = allLinks.length;
.
.
</script>
.
.
.
<h:form id="treeNodeForm">
<h:panelGroup id="treePanelId">
<t:tree2 id="tree2Id"
value="#{treeBean.treeModel}" var="node" varNodeToggler="t"
binding="#{treeBean.component}" clientSideToggle="false" showNav="false">
<f:facet name="selectableNode">
<h:panelGrid id="tree2PGridSelNodeId" columns="3" cellpadding="0" cellspacing="0" border="0">
.
.
.
迁移后,我收到以下错误:
java.lang.IllegalStateException:在 org.apache.myfaces 的 org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:100) 中找到具有重复 ID“ mainLeftTree:treeNodeForm:tree2Id:tree2PGridSelNodeId ”的组件。 view.facelets.compiler.CheckDuplicateIdFaceletUtils.checkIds(CheckDuplicateIdFaceletUtils.java:116)
我在 SO 中发现了类似的问题,但我无法将解决方案与上述问题联系起来。我试图找到解决方案很多天/几个小时,但找不到。
请帮助您提供我可以尝试修复的建议和指示,因为我不确定问题是否与 f:subview 或 t:tree2 或 jsf2 facelets 有关。
非常感谢您提前。
问候,库马尔。