我的JSF應用程序中存在重複ID的問題。我讀過in this post,其中一種可能的解決方案是使用命名容器。你能舉一些例子如何使用命名容器來避免重複的IDS問題嗎?我使用Facelets。Jsf如何創建命名容器
回答
這是使用JSF1.2和Facelets什麼工作對我來說:
我發現,無論是<ui:composition>
也不<ui:component>
實際上是一個命名容器,所以使用相同的組件不止一次在相同的形式將失敗,並重復的ID異常。這似乎是一個糟糕的設計,因爲組件的全部重點都是可重用性。爲了解決這個問題,我包括每個組件內的<f:subview>
並在其上設置id作爲我的成分標籤的參數:
myComponent.xhtml:
<ui:component>
<f:subview id="#{id}">
....component code
</f:subview>
</ui:component>
和使用它的其他頁面很簡單(在設置taglib.xml和web之後)。xml正確):
<myTagLib:myComponent id="myCompA" />
我建議退後一步調查爲什麼發生重複ID問題。一旦你確定了根本原因,那麼就按照「常規」的方式修復它,而不是創建你自己的UINamingContainer
組件。
有重複的ID錯誤,這將有助於你進一步釘下來幾個可能的原因:
- 的相同 ID被用在不同
UIComponent
S中相同UINamingContainer
組件中。 - 物理上不同的成分綁定到相同 bean的相同
UIComponent
屬性。 - 僅JSP:
f:subview
已在父頁中聲明,而不是包括頁。 - 的相同包括網頁包括倍數相同
UINamingContainer
組件內倍。 - 已經動態構建了一個組件(例如,
new UIComponent()
)而沒有具有分配的ID。
這裏,UINamingContainer
是下每個<h:form>
,<h:dataTable>
和<f:subview>
。
如果上述建議沒有幫助,那麼更新您的問題,包括儘可能小的代碼片段(因此,沒有所有無關的代碼/雜波像無關的組件,庫,HTML/CSS/JS /等)和只需複製'n'paste'n'running它沒有任何更改再現了完全相同的問題。
這就像接下來的最後一個場景。我有一個facelets自定義組件,我在同一頁面中包含多次。我的facelets組件包含帶有問題標識的a4j:outputPanel。我需要這個ID,以便我可以reRender a4j:outputPanel。 將我的組件內容包裝到h:form中似乎對我來說不是一個好選擇。我寧願將它放入一些facelets提供的UINamingContainer中,但我認爲沒有這種東西。 – mgamer 2010-08-10 13:49:03
JSF 1.x或2.x?你在哪裏調用自定義組件內部或外部的重新渲染? 「自定義組件」究竟是什麼意思,只是'ui:composition'? – BalusC 2010-08-10 14:18:01
我在創建我的第一個facelets組件時遇到了同樣的問題。我會在另一個答案中分享對我有用的東西(當我從午餐回來時)。您可能想要更新您的問題以更具體。 – Naganalf 2010-08-10 18:56:20
- 1. 如何在jsf中解決周圍的命名容器?
- 2. 如何從容器創建新容器?
- 3. 如何創建div容器?
- 4. 如何創建pymc3容器
- 5. 如何在Windows Azure blob容器中創建子目錄並重命名目錄
- 6. 如何動態創建命名範圍?
- 7. 如何在java中創建命名鎖?
- 8. 如何創建自命名概念
- 9. 如何創建pymol重命名循環
- 10. 如何創建/命名var dynamicaly?
- 11. 如何創建兩個命名
- 12. 創建命名集
- 13. 如何在界面生成器中創建命名的顏色?
- 14. Java,LDAP,ADAM - 如何創建名稱爲正斜槓的容器
- 15. 如何創建動態壁紙容器?
- 16. 如何創建一個容器控件
- 17. 如何創建融合的Haskell容器?
- 18. 如何創建Aura DI容器?
- 19. 如何創建容器文件?
- 20. 如何創建模型容器對象
- 21. ¿如何創建記錄分頁? (JSF)
- 22. 如何創建選項卡 - jquery或JSF
- 23. 如何在JSF EL中創建數組?
- 24. 如何在JSF中創建一組h:selectOneRadio?
- 25. 如何在jsf中創建圖表?
- 26. 如何在JSF中創建地圖
- 27. 如何在JSF中創建菜單欄
- 28. 創建JS:「容器」
- 29. JSF的命名空間
- 30. 命名管道創建
這完美地解決了我的問題。感謝Naganalf和BalusC! – mgamer 2010-08-12 07:28:59
抱歉投下,但f:subview似乎並不打算解決OP中提到的帖子中描述的問題。這做了一些事情,可能會起作用。 – Toskan 2011-08-10 15:20:19