当我点击浏览器中的“后退按钮”时,我收到以下错误
Component ID "prodRunsList:prodRunIdss" has already been found in the view. JSF 2.1.
以下是导致该异常的代码
其中(prodRunsList:prodRunIdss“)prodRunsList.xhtml和prodRunIdss是”命令链接“下的f:param
<h:commandLink value="view" action="select">
<f:param id="prodRunIdss" name="prodRunId" value="#{prodRun.prodRunId}"/>
</h:commandLink>
注意:
我有“SearchForm.xhtml”页面,我可以输入一些值和搜索事件 我正在导航到“ResultDisplay.xhtml”页面以显示检索到的记录,每个记录的末尾我都有链接来编辑该行。当我点击后退按钮时,点击导航到“更新页面”的编辑链接在浏览器中我收到上述错误..
我的示例代码
<c:forEach items="#{prodRuns}" var="prodRun">
<p:row>
<p:column>
<h:outputText value="#{prodRun.diameter}" />
</p:column>
<p:column>
<h:outputText value="#{prodRun.partyName}" />
</p:column>
<p:column>
<h:outputText value="#{prodRun.millAndCounts}" />
</p:column>
<p:column>
<h:outputText value="#{prodRun.fabric}" />
</p:column>
<p:column>
<h:outputText value="#{prodRun.nightRun}" />
</p:column>
<p:column>
<h:commandLink value="view" action="select">
<f:param id="prodRunIdsss" name="prodRunId" value="#{prodRun.prodRunId}"/>
</h:commandLink>
</p:column>
</p:row>
</c:forEach>
答案 0 :(得分:1)
当JSTL标记在构建/恢复视图中起作用时,这可以被认为是Mojarra中的状态管理错误。我们也在几个月前在zeef.com遇到了这个问题,在将2.1.21升级到2.1.24后得到了解决。我不能指出确切的问题单,但它至少固定在这些版本之间的某个地方。尝试升级到最新的2.1版本,currently已经是2.1.26。
但是,你基本上存在设计/可用性问题。你应该在这里使用GET请求而不是POST请求。
替换
<h:commandLink value="view" action="select">
<f:param id="prodRunIdsss" name="prodRunId" value="#{prodRun.prodRunId}"/>
</h:commandLink>
通过
<h:link value="view" outcome="select">
<f:param id="prodRunIdsss" name="prodRunId" value="#{prodRun.prodRunId}"/>
</h:link>
它还应该立即修复此异常而无需升级。额外奖励,该链接现在为idempotent,因此可收藏并且可搜索抓取。