Jakiś powód, dla którego taki obiekt jak Set<MyObject> objects = new HashSet<MyObject>();
nie powinien działać w JSF Dataatable? Działa z List.Wyświetlanie obiektów z kolekcji Ustaw w Datatable JSF nie działa
Odpowiedz
Co do tego, dlaczego ogólnie nie jest obsługiwany standard Set
, dzieje się tak dlatego, że ta struktura danych nigdy nie jest przeznaczona do przechowywania zbioru obiektów, który jest uporządkowany według indeksu. Model List
robi to i ta struktura danych jest najbardziej sensowną strukturą danych, która reprezentuje wartość składnika UIData
. Interfejs DataModel
, który reprezentuje zapakowaną wartość komponentów UIData
i przechowuje indeksy wierszy oraz zapamiętuje bieżący wiersz dla iteracji renderowania i przetwarzania formularza wysyłania przy odświeżeniu, obsługuje z klas kolekcji Java tylko interfejs List
o smaku ListDataModel
.
Po proces decyzyjny długo (szczególnie popychany przez Hibernate/JPA społeczności, którzy na ogół używa Set
dla relacji nm), zespół JSF Spec ma na nadchodzący JSF 2.2 wreszcie zdecydowały się na wsparcie DataModel
interfejsu interfejs Collection
zamiast sam List
, za pomocą nowej implementacji CollectionDataModel
. Obsługuje również zestawy. Zobacz także JSF spec issue 479. Powinieneś pamiętać tylko o używaniu LinkedHashSet
zamiast HashSet
, oczywiście jeśli twoim zamiarem jest posiadanie edytowalnej tabeli danych. A LinkedHashSet
utrzymuje porządek elementów.
- 1. DataTable w JSF
- 2. jsf powtórz wewnątrz datatable
- 3. Funkcja triggerChange() nie działa w JSF?
- 4. Jak generować dynamiczne kolumny w JSF Datatable?
- 5. Angular Datatable nie działa z danymi
- 6. JSF setLocale nie działa poprawnie
- 7. Primefaces: ustaw stronę na datatable
- 8. JSF 2 dataTable indeks wiersza bez DataModel
- 9. Page JSF w oknie nie działa
- 10. JSF: h: dataTable vs h: panelGrid
- 11. Oprawa obiektów w kolekcji Zestaw
- 12. Magento: Ustaw LIMIT na kolekcji
- 13. JSF convertDateTime ze strefy czasowej w elementu datatable
- 14. Jak wyświetlić indeks wiersza w JSF elementu datatable
- 15. yajra DataTable z join nie działa w laravel 5?
- 16. REST - Usuwanie kolekcji obiektów
- 17. Ustaw język nie działa select2
- 18. jsf 2 primefaces openDialog nie działa?
- 19. Adnotacja komponentów JSF 2 nie działa
- 20. FileDownload i FileUpload JSF Primefaces nie działa
- 21. jQuery usuń obiekt z kolekcji obiektów
- 22. Jak ustawić szerokość renderowanej kolumny dataTable w JSF?
- 23. Wyświetlanie wartości obiektów symfony w szablonie gałązkowym
- 24. Wyraźne nie działa z LINQ do obiektów
- 25. JSF ViewParam z CommandButton
- 26. Jak działa filterMatchMode z PrimeFaces DataTable?
- 27. ustaw wartości z tablicy jquery obiektów php?
- 28. JSF 2.0 Konwerter nie działa z oddzielnym słoik pliku
- 29. Obiekt Inicjator dla kolekcji obiektów
- 30. Ustaw wyświetlanie kontrolki użytkownika poza granicę formularza
Z pewnością dlatego, że elementy HashSet nie są uporządkowane. Każde wstawienie lub usunięcie w zestawie może spowodować zmianę kolejności jego elementów. –
@JBNizet To powinno być odpowiedź. –
Nie jestem ekspertem w JSF, a tym samym nie jestem pewien, że jest to powód (lub jedyny powód). Tak więc pozwolę innym odpowiedzieć na bardziej precyzyjną odpowiedź. –