爲什麼諸如Set<MyObject> objects = new HashSet<MyObject>();
不應該在JSF Datatable中工作的任何原因?它適用於List。在Datatable JSF中顯示Set集合中的對象不起作用
11
A
回答
23
至於爲什麼Set
一般不被支持,這是因爲這個數據結構永遠不會支持由索引排序的對象集合。 List
這樣做,並且此數據結構是表示UIData
組件的值的最明智的數據結構。 DataModel
接口表示UIData
組件的包裝值,並保存行索引並記住當前行以渲染時的迭代以及回發時的表單提交處理,支持來自Java集合類的List
風格爲ListDataModel
的接口。
經過漫長的決策過程(尤其是由Hibernate/JPA社區推誰普遍採用Set
爲納米關係),在JSF規範團隊已經爲即將到來JSF 2.2終於決定讓DataModel
接口支持Collection
接口,而不是單獨List
,在新的CollectionDataModel
實施的幫助下。這也支持集合。另見JSF spec issue 479。你應該只記住使用LinkedHashSet
而不是HashSet
,當然如果你的意圖是有一個可編輯的數據表。 A LinkedHashSet
保持元素的排序。
相關問題
- 1. 在Set集合中綁定對象
- 2. 在DataGridViews中顯示對象的集合
- 3. DataTable不顯示信息JSF
- 4. 在YUI中顯示JSON對象Datatable
- 5. JSF DataTable命令按鈕不起作用
- 6. 如何在jsf中顯示多對多jpa集合?
- 7. 突出顯示JSF頁面中的行不起作用
- 8. 集合在模板中不起作用
- 9. 在UITableView CoreData中顯示集合中排列的對象
- 10. 在控制檯中顯示對象集合中的每行一個對象
- 11. 在JSF中操作JQuery中的DataTable
- 12. 爲什麼JSF tomahawk dataTable不顯示?
- 13. $ this> set在cakePHP中不起作用?
- 14. 奇怪的問題:在視圖中顯示集合對象?
- 15. 如何在表單中顯示集合的下一個對象?
- 16. 使用LINQ到對象從集合中創建一個DataTable
- 17. 使用DataTable顯示JSON對象
- 18. 如何在JSF中使用dataTable訪問對象方法?
- 19. 如何顯示在JSF的dataTable在JSF數據表
- 20. JSF outputstylesheet在Firefox中不起作用?
- 21. triggerChange()函數在JSF中不起作用?
- 22. 在WPF中顯示BitmapSource不起作用
- 23. 顯示:none在jQuery中不起作用
- 24. 在標籤中顯示一個對象值(來自集合)
- 25. 集合操作中對象的行爲
- 26. Hibernate Criteria在restrinction中使用集合(Set)
- 27. Jsf複合組件不起作用
- 28. 在組合框中顯示默認文本不起作用
- 29. 對象不在集合中添加
- 30. JSF在DataTable中顯示枚舉的自定義字符串
當然是因爲HashSet的元素沒有排序。集合中的任何插入或刪除都可能導致其元素的順序發生更改。 –
@JBNizet這應該是一個答案。 –
我不是JSF的專家,因此我不確定這是否是原因(或唯一原因)。所以我會讓別人回答更準確的答案。 –