剛剛看到很多問題,包括「更新」,「@all」,「@form」,但沒有人在我的應用程序中解決了這種情況。JSF 2.0和Primefaces的另一個「無法找到組件」
我叫對答用自定義JSF標籤:
<h:form>
<h:panelGroup>
<p:commandButton action="#{Bean.action(catId, id)}" icon="ui-icon-weblibrary ui-icon-weblibrary-like" title="Start" update="@form" value="#{Bean.threadName}" />
</h:panelGroup>
</h:form>
這個自定義標籤是由其他自定義標籤插入這樣的:
<ui:repeat value="#{Bean.threadList}" var="thread">
<ui:include src="threadList.xhtml">
<ui:param name="catId" value="..." />
<ui:param name="id" value="..." />
</ui:include>
</ui:repeat>
有時候,這可能是一個更新的結果第二個taglib和ajax。
而且這裏的東西...
- 當我在p設置更新=「@形式」:的commandButton一切工作正常,但在我的日誌我看到一個「無法找到標識成分」 j_idt70: 0:j_idt82「在視圖中。」;
- 當我設置update =「:@ form」或update =「:form」時,「無法找到標識符爲」j_idt70:0:j_idt82「的組件。」消失,但該事件不會更新任何內容(即使該操作成功運行);
- 最後,當我給窗體和panelGroup一個id並嘗試更新=「:formId:panelId」或更新=「:@ formId:panelId」或更新=「:formId」消息「找不到帶標識符的組件」j_idt70 :0:j_idt82「在視圖中。」出現,沒有任何東西是uptade。
好奇的是瀏覽器的源代碼中沒有。所以,我不知道這個「幽靈」j_idt70是否會破壞所有的ID和更新命令。
在我再次問你這個問題之前,我嘗試了所有在棧溢出問題中學到的東西。
非常感謝您的閱讀和關注。
什麼是JSF impl/version和PF版本? – BalusC
「ghost」id是組件自動生成的ID。嘗試將ID添加到所有組件中,以便在打印錯誤消息時它會告訴您所查找的組件ID。此外,如果您的自定義組件具有表單,請記住,將在您的xhtml頁面內打印N個表單,並且commandButton範圍將僅爲該表單(至少在您的實際設計中)。如果您使用的是JSF 2,則可能[此鏈接](http://stackoverflow.com/q/5558249/1065197)可以幫助您。 –
@BalusC,我使用的是JSF 2.0和Primefaces 3.0.1。 –