Generazione dynamic h: colonna in base all’elenco di hashmap

Nella mia applicazione voglio visualizzare un con proprietà bean gestite. Attualmente questa tabella è creata da un List . Ora voglio cambiare la Folder in qualcosa di più dinamico. Questo perché non voglio cambiare la class Folder se decido di aggiungere un altro campo più tardi. Dovrei semplicemente aggiungere un’altra voce nella Map invece di introdurre un nuovo campo nella Folder .

Quindi, è ansible associare un List<Map> a ?

È ansible associare un elenco di HashMaps al componente jsf h: dataTable?

Questo è ansible solo se generi i con un tag time build view come JSTL .

Ecco un esempio concreto di kickoff, assumendo che il tuo ambiente supporti EL 2.2:

    #{map[key]}    

(se il tuo ambiente non supporta l’EL 2.2, dovrai fornire un altro getter che restituisca il set di chiavi della mappa come String[] o List , inoltre tieni presente che una HashMap è per natura non ordinata, potresti vuoi usare LinkedHashMap invece di mantenere l’ordine di inserimento)

Quando si utilizza la versione di Mojarra precedente alla 2.1.18, lo svantaggio è che #{bean} deve essere con scope di richiesta (non vista con scope). O almeno, il dovrebbe fare riferimento a un bean con scope richiesta. Un bean con scope vista sarebbe altrimenti ricreato su ogni singola richiesta HTTP mentre viene eseguito durante il tempo di generazione della vista, quando l’ambito della vista non è ancora disponibile. Se è assolutamente necessario un bean con ambito di visualizzazione per , è sempre ansible creare un bean con scope della richiesta separata esclusivamente per . La soluzione sarebbe di passare a Mojarra 2.1.18 o più recente. Per alcune informazioni di base, vedere anche JSTL in Facelets JSF2 … ha senso?

Le librerie di componenti JSF come PrimeFaces possono offrire un che rende questo più facile, come con .

   #{map[key]}