Tabela de produtos em JSTL ou JSF

Estou montando uma página com uma tabela de Produtos, cada produto deve exibir seu nome em uma

do HTML, sendo que terei 3 colunas por linha. Fiz o seguinte código com scriptlets, mas ficou horrível. Alguém sabe como faço com <c:forEach/>do JSTL ou mesmo <h:dataTable> do JSF ?
<%  java.util.List produtosEmDestaque = (java.util.List) request.getAttribute("produtosEmDestaque");
for (int i=0; i<produtosEmDestaque.size(); i=i+3) {
      out.print("<tr>");
      for (int j=0; j<3; j++) {
            if ((i+j) < produtosEmDestaque.size()) {
                          lojavirtual.modelo.Produto produto = (lojavirtual.modelo.Produto)produtosEmDestaque.get(i+j);
                          out.print("<td width='33%'>"+produto.getNome()+"</td>");
             }
      }
      out.print("</tr>");                                    
}
%>

Ai vai um pouco de código JSF para lhe dar inspiração.

        <h:dataTable var="v" value="#{sessionScope.alunos}" border="0" >                        
            
            <h:column id="id">
                
                <f:facet name="header">
                    
                    <h:outputText value="ID" />
                </f:facet>
                <h:outputText value="#{v.id}" >
                    
                </h:outputText>
            </h:column>
            <h:column id="nome">
                
                <f:facet name="header">
                    <h:outputText value="NOME" />
                </f:facet>
                <h:outputText value="#{v.nome}" />
            </h:column>
            <h:column id="idade">
                
                <f:facet name="header">
                    <h:outputText value="IDADE" />
                </f:facet>
                <h:outputText value="#{v.idade}" />
            </h:column>                      

            </h:column>                         

        </h:dataTable>