gpt4 book ai didi

java.lang.IllegalStateException : Component ID has already been found in the view

转载 作者:行者123 更新时间:2023-11-30 06:42:49 24 4
gpt4 key购买 nike

在某些情况下,我收到“java.lang.IllegalStateException:组件 ID 已在 View 中找到”异常,但我不明白为什么。

我在以下页面中使用了复合组件四次,并且有一个相应的输出文本用于显示每次的结果:

<h:form id="aCrazyTestForm"">

<my:jqueryautocomplete values="#{jqueryAutoCompleteBean.carListJson}" selectedValue="#{jqueryAutoCompleteBean.selectedCarOne}" field="make">
<f:ajax execute=":aCrazyTestForm:completeOne" render=":aCrazyTestForm:completeOne" event="tagSelectedEvent" listener="#{jqueryAutoCompleteBean.selectedCarOne}" />
</my:jqueryautocomplete>

<h:outputText id="completeOne" value="#{jqueryAutoCompleteBean.selectedCarOne}" />

<my:jqueryautocomplete values="#{jqueryAutoCompleteBean.carListJson}" selectedValue="#{jqueryAutoCompleteBean.selectedCarTwo}" field="make">
<f:ajax execute=":aCrazyTestForm:completeTwo" render=":aCrazyTestForm:completeTwo" event="tagSelectedEvent" listener="#{jqueryAutoCompleteBean.selectedCarTwo}" />
</my:jqueryautocomplete>

<h:outputText id="completeTwo" value="#{jqueryAutoCompleteBean.selectedCarTwo}" />

<my:jqueryautocomplete values="#{jqueryAutoCompleteBean.carListJson}" selectedValue="#{jqueryAutoCompleteBean.selectedCarThree}" field="make">
<f:ajax execute=":aCrazyTestForm:completeThree" render=":aCrazyTestForm:completeThree" event="tagSelectedEvent" listener="#{jqueryAutoCompleteBean.selectedCarThree}" />
</my:jqueryautocomplete>

<h:outputText id="completeThree" value="#{jqueryAutoCompleteBean.selectedCarThree}" />

<my:jqueryautocomplete values="#{jqueryAutoCompleteBean.carListJson}" selectedValue="#{jqueryAutoCompleteBean.selectedCarFour}" field="make">
<f:ajax execute=":aCrazyTestForm:completeFour" render=":aCrazyTestForm:completeFour" event="tagSelectedEvent" listener="#{jqueryAutoCompleteBean.selectedCarFour}" />
</my:jqueryautocomplete>

<h:outputText id="completeFour" value="#{jqueryAutoCompleteBean.selectedCarFour}" />

</h:form>

我的复合组件实现包装在 id = "#{cc.clientId}"的跨度中

只有在填充表单的 id 时才会遇到此错误。如果我设置表单 prependId="false",则不会收到该错误。

使用下面的代码我收到错误:“未处理的面孔错误:组件 ID aCrazyTestForm:j_idt15 已在 View 中找到”。在下面的代码片段中,您可以看到这实际上是我的自定义组件的 id。

<JqueryAutoComplete id="j_idt15" immediate="false" inView="true" localValueSet="false" rendered="true" required="false" transient="false" valid="true">

我认为用 id="#{cc.clientId}"将复合组件的实现包装在一个跨度中可以确保我的组件无论在何处使用都能获得唯一的标识符?

最佳答案

JSF 有时可能会对重复元素感到困惑,尤其是对大量重复元素。您能否尝试为每个 my:jqueryautocomplete 标记设置 ID,看看问题是否仍然存在?

关于java.lang.IllegalStateException : Component ID has already been found in the view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44134609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com