JSTL funciona parcialmente

1 resposta
C

Estou tentando fazer um teste com JSTL e parte das tags estão funcionando parte não, o código da minha jsp é o seguinte:

inicio.jsp

<%@ taglib uri=“http://java.sun.com/jstl/core” prefix=“c” %>

<% int[] primitiveValues = {1,2,3,4,5,6,7,8,9,10};

pageContext.setAttribute("primitiveValues",

                               primitiveValues,

                               PageContext.REQUEST_SCOPE);

  %&gt;

<body>
<%

int[] values = (int[])request.getAttribute(

                                   "primitiveValues");



     for(int i=0; i &lt; values.length; ++i) { %&gt;

        value = &lt;%= values[i] %&gt;&lt;br&gt;

  &lt;%   }

  %&gt;


	
	&lt;c:forEach items='${primitiveValues}' var='item'&gt;

                    value = &lt;c:out value='${item}'/&gt;&lt;br&gt;

            &lt;/c:forEach&gt;

            &lt;c:forEach var='item2' begin='5' end='10'&gt; 

                    value = &lt;c:out value='${item2}'/&gt;&lt;br&gt;

            &lt;/c:forEach&gt;

</body>

Resultado apresentado na tela:

<!-- inicio do for -->
value = 1
value = 2
value = 3
value = 4
value = 5
value = 6
value = 7
value = 8
value = 9
value = 10

<!-- fim do for -->

<!-- inicio do primeiro forEach -->

value = ${item}

<!-- fim do primeiro forEach -->

<!-- inicio do segundo forEach -->

value = ${item2}

value = ${item2}

value = ${item2}

value = ${item2}

value = ${item2}

value = ${item2}

<!-- fim do segundo forEach -->

Instalei os seguintes pacotes jar no diretorio lib da minha aplicação;
jstl.jar e standard.jar

Coloquei todos os arquivos tlds (c.tld, fmt.tld, etc) em /WEB-INF/ da minha aplicação.

meu arquivo web.xml:

<?xml version=“1.0” encoding=“ISO-8859-1”?>

<!DOCTYPE web-app
PUBLIC “-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
http://java.sun.com/dtd/web-app_2_3.dtd”>

<web-app>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/sql-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/x-rt.tld</taglib-location>
</taglib>
</web-app>

Não entendo não faz o primeiro forEach usando a tag <c:forEach>, faz o segundo forEach mas não imprime, não é o valor das variaveis, quando uso o for ele imprime os valores, ou seja, não é problema do array.
Uso o Tomcat 5.0.27.
SO win 2000.

Grato a todos pela atenção.

Carlos Ferreira

1 Resposta

A
Cara,

meu for each ta diferente do seu! Olha ai:

<c:forEach items="${formBean.map.itens}" var=itensPlc varStatus=i>

<c:out value="${itensPlc.id}"/>

meu itensPlc é um ArrayList!
Criado 6 de maio de 2005
Ultima resposta 6 de mai. de 2005
Respostas 1
Participantes 2