> For the complete documentation index, see [llms.txt](https://avbravo-2.gitbook.io/trucosjakartaee/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://avbravo-2.gitbook.io/trucosjakartaee/overview/java-server-faces/menu/menus-dinamicos-mediante-prepeat.md).

# Menus dinámicos mediante \<p:repeat

## ![](https://2578941663-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lc1Wg6ze2c8GK7mFBZX%2F-Lc1WjGeqF4Ig-44ZLgX%2F-Lc1X5XTFYXbUX6mFVJz%2Fimgc.png?generation=1554820663279199\&alt=media)

## En el top.xthml

* usamos \<p:repeat>

```javascript
<b:dropMenu value="#{msg['menu.porclasificacion']}" rendered="#{applicationMenu.cliente.list}">

     <p:repeat value="#{clienteController.clasificacionclienteServices.clasificacionclienteList}" 
               var="itemclasificacion">

           <b:navLink value="#{clienteController.textoPrimerCaracterMayuscula(itemclasificacion.descripcion)}" 

                      outcome="/pages/cliente/list" iconAwesome="fa-print" />

      </p:repeat>   

 </b:dropMenu>
```

## En el controller

* Definir un List\<Entity>
* En el método get cargar todos los entity

```java
List<Clasificacioncliente> clasificacionclienteList = new ArrayList<>();


    // <editor-fold defaultstate="collapsed" desc="getClasificacionclienteList()">
    public List<Clasificacioncliente> getClasificacionclienteList() {
        try {
            clasificacionclienteList = repository.findAll(new Document("idclasificacioncliente", 1));
        } catch (Exception e) {
            JsfUtil.errorMessage("getClasificacionclienteList() " + e.getLocalizedMessage());
        }
        return clasificacionclienteList;
    }// </editor-fold>
```
