Problema com JSTL

3 respostas
V

Pessoal,

Bom dia mais uma vez…Seguinte, possuo uma classe que ele me retorna numa Collection (ArrayList) o conteúdo de um diretório.Isso está acontecendo sem problema algum. No Jsp que “chama” essa classe, eu pego a instância da mesma e jogo pra outro ArrayList local para printar…Pensei em usar JSTL e a instrução <foreach> porém quando eu executo meu JSP, ele printa apenas uma vez a string ${objeto} e não o conteúdo do mesmo, como se eu tivesse digitado apenas. sendo que como possuem de fato 3 arquivos teriam que ser printados 3 vezes .

ABaixo o código,

&lt;%
    Collection files  = new ArrayList();
    RgvDownload down  = RgvDownload.getInstance(); //instancia da classe onde é executado o método para listar o arquivo
    files  = down.listaConteudo();  //arraylist que armazana a saída do método
   
%&gt;

     &lt;table width="75%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#0099CC" bgcolor="#CCCCCC"&gt;
        &lt;caption&gt;
            &lt;font valign="top" CLASS="title" align="center"&gt;&lt;bean:message key="label.rgv.desc"/&gt; &lt;/font&gt;
        &lt;/caption&gt;
        &lt;c:set var = "file" value ="${files}" /&gt;
      &lt;tr&gt;
        &lt;td align="center" valign="middle" width="50%"&gt;Nome&lt;/td&gt;
        &lt;td align="center" valign="middle" width="25%"&gt;Tamanho&lt;/td&gt;
        &lt;td align="center" valign="middle" width="25%"&gt;Data&lt;/td&gt;
      &lt;/tr&gt;
          &lt;c:forEach var="file" items="${files}"&gt;
            &lt;tr&gt;
                &lt;td align="center" valign="middle" width="50%"&gt;"{ file.name}"&lt;/td&gt;
                &lt;td align="center" valign="middle" width="25%"&gt;"{file.size}"&lt;/td&gt;
                &lt;td align="center" valign="middle" width="25%"&gt;"{ file.date}"&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/c:forEach&gt;
    &lt;/table&gt;

             Considerações:
             App Server : Weblogic 7
             JSTL Version : 1.0.6

Grato

3 Respostas

F

pra printar alguma coisa vc tem que usar:

&lt;c&#58;out value="$&#123;objeto.blabla&#125;" /&gt;

Abraços.

D

Você não colocou o $ na tag de impressão.

As duas formas possiveis são:
${file.name} ou <c:out value="${file.name}"/>

C

Se mesmo assim não aparecer, pode ser a sua diretiva que não está setada pra permitir ELs…

Criado 25 de julho de 2006
Ultima resposta 25 de jul. de 2006
Respostas 3
Participantes 4