アプリケーションでprimefacesオートコンプリートを使用して、ユーザーIDをユーザーに提案しています。ユーザーがAutocomplete
テキストボックスに3文字を入力すると、UserIds
リストがユーザーにオートコンプリートするよう提案されます。John Doe(jd123)
ユーザーがリストから userId を選択するとすぐに、出力テキストのユーザーの姓名を次の形式で更新し、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 リクエストで更新できることはわかっています。しかし、私は自分が間違っていることを知りません。