Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Como percorrer um array Multidimensiconal ?

Olá,

Estou utilizando o VRaptor e gostaria de saber como faço para enviar para a forEach um array multidimensional e como faço a referência para exibir seu conteúdo em uma tabela ?

String [][] array = new String [10][10];
result.include (????);
<table>
<c:forEach var="array" items="${matriz}">
    <tr> 
     ???????
    </tr>
</c:forEach>
</table>
7 respostas
solução!

O envio do VRaptor não sei te informar. Porém, o forEach não é automatizado para arrays multidimensionais. Logo, será necessário criar 2 loops. Ex:

String [][] array = new String[10][10];

Na JSP:

<c:forEach var = "val1" items="${array}">
    <c:forEach var = "val2" items="${val1}">
        //logica
    </c:forEach>
</c:forEach>

Obrigado Júnior, vou tentar então enviar duas listas e uso o forEach duplo para percorre-las.

Vamos ver se funciona.

Oi Renato, tudo bem?

Alguma novidade? Conseguiu resolver seu problema?

Abraços!

Então Leonardo não deu certo, infelizmente. O que estou tentando criar por exemplo é um jogo tipo campo minado utilizando VRaptor.

No caso o campo é uma matriz 10x10.

Partindo disso eu criei um Array 10x10 e queria enviar para a jsp e através de uma tabela simular esse campo, eu queria enviar um array, mas pelo visto não é possivel, enviei duas listas para simular linha e coluna e não deu certo também. Vou ver se faço através de scriplets, não gosto mas pelo visto vai ser o jeito

Oi Renato, tudo bem?

Não sei como implementou, mas sim é possível! O exemplo do Silvio está corretíssimo.

Se estiver precisando do index da iteração há o atributo varStatus do c:forEach que permite você declarar uma variável que servirá de contador.

Abraços!

Oi Renato, talvez não tenha ficado muito claro. Você pode passar a matriz 10x10, porém caso coloque dentro do forEach, ele não vai iterar elemento por elemento. Caso você teste com uma saída, verá que será um dos arrays da matriz. Por isso o segundo forEach, que aí sim irá pegar item por item de cada array comum. A dica do Leonardo é muito boa, pois diversas vezes precisamos saber em qual loop estamos, e no caso das JSP's, pegamos como sendo

<c:forEach items="${arrays}" var="val1" varStatus="i">
    //mostra o valor do loop
    ${i.index}
</c:forEach>

Estou com o mesmo problema

alguem poderia me ajudar a interar neste for

<c:forEach var="i" begin="0" end="${game.tamanho}">
        <c:forEach var="j" begin="0" end="${game.tamanho}">
            <c:out value="${game.board.getPoint(1,1)}" />
        </c:forEach>
        <p>
    </c:forEach>