Itérer sur une Liste<Map<String, String>> dans primefaces datatable?

Je suis en train de parcourir la Liste des éléments de la Carte, c'est à dire une liste de tableaux de HashMaps ou quelque chose de similaire, et je suis en train de le faire dans primefaces datatable. C'est en gros ce que j'essaie de faire:

<body>
    <h:form>
        <p:dataTable value="#{customerBean.list}" var="map">
            <c:forEach items="#{map}" var="entry">
                <p:column headerText="#{entry.key}">
                    #{entry.value}
                </p:column>
            </c:forEach>
        </p:dataTable>
    </h:form>
</body>

Dans ce cas, customerBean.list est un List<Map<String, String>> et l'entrée est un Map<String, String>.

Ce que je veux faire, c'est de créer une dynamique quantité de colonnes, en fonction de la quantité d'entrées dans un Map<String, String> tout en utilisant la carte d'entrée de la clé comme un nom d'en-tête, et la valeur de la sortie. Le c:forEach chose semble fonctionner très bien lorsque je suis en utilisant une codé en dur Map<String, String>, mais apparemment il ne peut pas faire une boucle par la var de la p:dataTable. Je suppose que le programme prend la précaution afin d'éviter de devoir parcourir les Cartes de différentes tailles. Alors, comment puis-je faire ce travail de toute façon? Comment puis-je créer un certain nombre de colonnes en fonction de la quantité d'entrées dans une Carte? Notez que je suis certain à 100% que tous les Map<String, String> est de taille égale dans mon List<Map<String, String>>

EDIT:

Voici mon haricot source. Le code fonctionne très bien et tout et tout, le problème est juste que la boucle ne veulent pas passer par ma carte:

@ManagedBean
@SessionScoped
public class CustomerBean {

    private List<Map<String, String>> list = new ArrayList<Map<String, String>>();
    private Mapper mapper = new Mapper();

    public CustomerBean() {
        list = mapper.all(); //gets data from database
    }

    public List<Map<String, String>> getList() { 
        return list;
    }

    public void setList(List<Map<String, String>> list) { 
        this.list = list;
    } 
}
InformationsquelleAutor ZimZim | 2013-05-22