Alguém pode me dar uma idéia, do jeito que eu faço o meu menu categoria passar o valor da categoria pra outro componente que eu mesmo criei que renderiza um datagrid na tela. Igual esses menus de ecommerce(Americanas, Submarino). Eu quero clicar na categoria e ele me trazer todos os produtos daquela categoria. Meu menu de categoria esta em um componente e os produtos que serão exibidos estão em outro componente. Mas se alguém tiver alguma outra idéia de estrutura eu aceito também.
Na minha index eu to chamando esses dois componentes que eu mesmo criei. Um é um menu e outro é um dataGrid. To usando o PrimeFaces.<div id="menuesquerdo">
<g:menucategoria/>
</div>
<div id="conteudo">
<g:conteudo modelo="#{produtocrtl.listaProdutos}"/>
</div>
<cc:implementation>
<h:form>
<p:menu model="#{menucrtl.menuModel}" id="menucategoria"/>
</h:form>
</cc:implementation>
public MenuModel getMenuModel(){
model = new DefaultMenuModel();
List<Categoria> categoria = categoriaDao.findAll();
for(Categoria cat : categoria) {
item = new MenuItem();
item.setValue(cat.getDescricao());
model.addMenuItem(item);
}
return model;
}
<!-- INTERFACE -->
<cc:interface>
<cc:attribute name="modelo" required="true"/>
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<h:form>
<p:dataGrid var="o" value="#{cc.attrs.modelo}" columns="3" effect="true" paginator="true" paginatorPosition="top" rows="10">
<p:column>
<p:panel header="#{o.nome}">
<h:panelGrid columns="2">
<p:graphicImage value="/resources/imagens/#{o.imagem}"/>
<h:outputText value="#{o.descricao}"/>
<br/>
<h:outputText value="R$ #{o.preco}"/>
</h:panelGrid>
</p:panel>
</p:column>
</p:dataGrid>
</h:form>
</cc:implementation>