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);
%>
<body>
<%
int[] values = (int[])request.getAttribute(
"primitiveValues");
for(int i=0; i < values.length; ++i) { %>
value = <%= values[i] %><br>
<% }
%>
<c:forEach items='${primitiveValues}' var='item'>
value = <c:out value='${item}'/><br>
</c:forEach>
<c:forEach var='item2' begin='5' end='10'>
value = <c:out value='${item2}'/><br>
</c:forEach>
</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