Para criar o menu dinâmico no IceFaces (certeza disso?) eu utilizei o componente (também sou novato nesse mundo, se não for componente o termo, sinta-se a vontade de me corrigir): ice:menuBar. O componente tem uma documentação online aqui e um exemplo de uso (com links para o fonte do exemplo).
Antes de sair utilizando - foi um erro que eu cometi - tente entender (caso já não saiba) o que é o IceFaces para toda essa sopa de letrinha java. Isso me ajudou bastante depois de entender... Procure baixar alguns exemplos de programas prontos para você ver o que eles quiseram fazer, alguns até dizem o porque ter feito daquela forma.
Mas vou colar uns trechos de código, para ver se te ajuda na montagem do seu menu.
No bean (ainda não estou muito familiarizado com essas nomenclaturas) foi necessário colocar o código abaixo, como menu é todo dinâmico, acabei criando os itens do html "a mão", que no seu caso pode ser parecido, já que montará de acordo com os acesso. Mas não quer dizer que essa maneira é a melhor, foi a que consegui - posso mudar de opinião depois de estudar mais (tenho apenas 5 meses de IceFaces, portlets, portal e afins):
for (Tema tema : temaModel.getTemas()) {
MenuItem menuItem = new MenuItem();
menuItem.setValue(tema.getNome());
menu.add(menuItem);
for (Indicador indicador : tema.getIndicadores()) {
MenuItem subMenuItem = new MenuItem();
subMenuItem.setValue(indicador.getNome());
subMenuItem.setActionListener(createMethodBinding("menuListener"));
subMenuItem.getAttributes().put("codigo", indicador.getCodigo());
subMenuItem.getAttributes().put("titulo", tema.getNome() + " / " + indicador.getNome());
menuItem.getChildren().add(subMenuItem);
}
}
O que isso faz é um loop dentro de uma lista de objetos do tipo tema que é o primeiro nível do menu, e depois outro loop pegando os indicadores de cada tema (que é o segundo nível).
E esse é o meu menu no meu "html":
<ice:menuBar orientation="horizontal" displayOnClick="true">
<ice:menuItems value="#{informacoes.menu}" />
</ice:menuBar>
Ali tem a orientação (horizontal, mas pode ser vertical como tem no link que te passei lá em cima) e essa propriedade displayOnClick para mostrar as subopções só quando clicado, pois a tela é touchscreen.
Bom cara, tentei ajudar um pouco... mas sou bem novato nisso tudo, pode ver que tenho altas perguntas por aqui... fui resolvendo e fuçando vendo exemplos e as páginas que te passei no início. Qualquer coisa posta aí... e só assim para te ajudar, aqui no trabalho não tem acesso a MSN e comunicadores instantâneos.