Qualsiasi motivo per cui un oggetto come Set<MyObject> objects = new HashSet<MyObject>();
non dovrebbe funzionare nel Datatable JSF? Funziona con List.La visualizzazione di oggetti da una raccolta Set in JSF Datatable non funziona
risposta
Per quanto riguarda il motivo per cui un Set
in generale non è supportato, questo perché questa struttura dati non ha mai l'intenzione di contenere una raccolta di oggetti che è ordinata da un indice. Lo List
fa questo e questa struttura dati è la struttura dati più ragionevole per rappresentare il valore di un componente UIData
. L'interfaccia DataModel
, che rappresenta il valore spostato dei componenti UIData
e contiene gli indici delle righe e memorizza la riga corrente per l'iterazione sul rendering e l'elaborazione di invio del modulo sul postback, supporta dalle classi di raccolta Java solo l'interfaccia List
nel formato ListDataModel
.
Dopo un processo decisionale lungo (soprattutto spinto dalla comunità Hibernate/JPA che usa generalmente Set
per i rapporti nm), il team JSF spec ha per l'imminente JSF 2.2 finalmente deciso di lasciare che il supporto DataModel
interfaccia l'interfaccia Collection
invece che da solo il List
, con l'aiuto della nuova implementazione CollectionDataModel
. Questo supporta anche i set. Vedi anche JSF spec issue 479. Dovresti solo ricordare di usare LinkedHashSet
invece di HashSet
, certamente se la tua intenzione è di avere una tabella di dati modificabile. A LinkedHashSet
mantiene l'ordine degli elementi.
- 1. Associazione di oggetti in una raccolta Set
- 2. DataTable in JSF
- 3. jsf repeat inside datatable
- 4. Visualizzazione di DataTable standard in MVC
- 5. JSF convertDateTime con fuso orario in datatable
- 6. primefaces JSF filtraggio DataTable emette
- 7. Come ottenere l'indice di riga selezionato in JSF datatable?
- 8. JSF: h: dataTable vsh: panelGrid
- 9. Emissione di una raccolta di mappe in facelets JSF 2
- 10. AutoMapper non funziona con la raccolta di classi derivate
- 11. Visualizzazione collezione Marionette, raccolta raccolta non attiva eventi
- 12. primefaces/JSF ID componente non trovato all'interno di p: DataTable
- 13. Visualizzazione raccolta Celle non visualizzate
- 14. JSF ViewParam da CommandButton
- 15. Scala raccogliere gli oggetti di un tipo da una raccolta
- 16. Visualizzazione JSF durante la ricostruzione di ogni richiesta Ajax
- 17. Primefaces: set page su datatable
- 18. Indice riga JSF 2 dataTable senza dataModel
- 19. Come ordinare in base all'etichetta JSF nel datatable ordinabile
- 20. Visualizzazione modificabile Java alla raccolta
- 21. REST - Eliminazione di una raccolta di oggetti
- 22. In Java, come viene raccolta una matrice di oggetti?
- 23. Righe piè di pagina multiple in un JSF dataTable
- 24. Come rimuovere un datatable da un set di dati (ha una serie di relazioni)
- 25. Visualizzazione raccolta impaginata in WPF
- 26. Visualizzazione oggetto JSON in YUI Datatable
- 27. Come posso velocizzare la creazione di istanze di una vasta raccolta di oggetti?
- 28. triggerChange() non funzionante in JSF?
- 29. jsf 2 primefaces openDialog non funziona?
- 30. Convalida campi incrociati in jsf h: datatable utilizzando p: calendar
Certamente perché gli elementi di HashSet non sono ordinati. Qualsiasi inserimento o rimozione nel set può causare la modifica dell'ordine dei suoi elementi. –
@ JBNizet Questa dovrebbe essere una risposta. –
Non sono un esperto di JSF e quindi non sono sicuro che questa sia la ragione (o l'unica ragione). Quindi lascerò che gli altri rispondano a una risposta più precisa. –