我在我的应用程序中使用 primefaces 自动完成向用户建议 userIds。一旦用户在Autocomplete
文本框中输入三个字符,我的UserIds
列表将被建议给用户自动完成。用户从列表中选择 userId 后,我将使用以下格式更新输出文本中的用户名和姓,并在该名称旁边John Doe(jd123)
添加一个按钮。Delete
如代码中的注释所示,第一个 ajax 请求工作正常。但是当我尝试删除我正在使用打印的名称时,我<h:outputText/>
收到一个错误,即
javax.faces.FacesException:找不到从“j_idt34:0:imgid”引用的标识符“items”的组件。
我的代码:
<h:outputLabel value="Select user" for="acMinLength" />
<p:autoComplete id="acMinLength"
minQueryLength="3"
value="#{autoCompleteBean.txt2}"
completeMethod="#{autoCompleteBean.complete}">
<p:ajax event="itemSelect"
listener="#{autoCompleteBean.handleSelect}"
update="items"/> // First Ajax request perfectly working fine
</p:autoComplete>
<h:outputLabel value="selectedUsers" for="acMinLength" />
<h:panelGroup id="items">
<ui:repeat value="#{autoCompleteBean.printId}" var="item">
<h:outputText value="#{item}"/>
<h:graphicImage name="delete.png" library="images" id="imgid">
<p:ajax event="click"
listener="#{autoCompleteBean.updateList}"
update="items"/> // This is where i am getting exception
</ui:repeat>
<h:panelGroup>
我知道我可以使用子 Ajax 请求更新父组件。但我不知道我做错了什么。