Problema com c:forEach

Olá

Estou recebendo um erro no seguinte código:

		<c:forEach var="cd" items="${listaCds}">
			<option value="${cd.id}">${cd.titulo}</option>
		</c:forEach>

Consigo exibir listaCds normalmente usando, por exemplo, a lib displaytag. listaCds é uma java.util.List.

Mas na hora de carregar o JSP dá o seguinte erro:

According to TLD or attribute directive in tag file, attribute items does not accept any expressions

Estou usando o Tomcat 5.5.17, e Java 5.

Qual o problema?

Descobri que funciona se eu mudar a declaração da taglib

de

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

para

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

Mas o recomendado a usar com Tomcat 5 e JSTL 1.1 é o core, só que não funciona. Vai entender…

Use:

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

Beleza funcionou.

O único “porém” é que agora o Eclipse (Easy Eclipse Server) dá como erro a tag c:forEach.

Tem como resolver isso?

taglib directive for c does not exist or TLD is not found

Vc mapeou no seu web.xml a taglib?

Até onde eu sei e li não precisa mapear nada no xml.

E, tipo tá funcionando tudo certinho. Só o editor do Eclipse que dá esse erro que eu falei.

da onde esta vindo o listaCds??? Aqui vai um exemplo de como usar o forEach, a core em si está certa e não precisa de mapeamento nenhum.
Exemplo:

<!­
cria a lista ­>
<jsp:useBean id="dao" class="br.com.caelum.jdbc.dao.ContatoDAO"/>
c) Faça o forEach
<!­
for ­>
<c:forEach var="contato" items="${dao.lista}">
<li>
nome: ${contato.nome},
email ${contato.email},
endereço ${contato.endereco}
</li>
</c:forEach>

onde dao é o objeto, no caso o bean com os metodos de manipulação da base de dados relacionado a contatos.No caso, o meu metodo de listagem é

public List<Contato> getLista()

quando eu chamo o dao.lista na expression language do forEach a expression language sabe que tem que chamar o getLista, sozinha, ela sabe quando chamar os getters e setters.

Especifica melhor pra gente poder te ajudar!!

Então, está funcionando ok.

O único porém é que o editor do eclipse dá o erro que eu falei. Mas funciona direitinho. Acho que alguma configuração do Amateras plugin do Eclipse que faz com que ele não encontre o TLD da Core e daí aparece como o erro. Mas a aplicação está funcionando.

O meu da esse erro tb…mas com essa msg: