Jstl

Pessoal estou apanhando feio desse “JSTL” !!!

É o seguinte, estou fazendo uma iteração simples e não consigo o resultado esperado:
<c:forEach var=“i” begin=“1” end=“4”>
${i}
</c:forEach>

Porem, ao invés de imprimir o conteúdo de i(1,2,3,4) imprime (${i},${i},${i},${i})

Alguém saberia me dizer o que pode ser??

Muito obrigado.

Ricardo Moura

 Pra imprimir é só fazer
&lt;c:out value='${i}'/&gt;

Mas eu vi vários artigos que não necessitava utilizar a TAG <c:out>.

Poderia ser versão do JSTL com o JSP???

Poxa vida ninguém utiliza JSTL aqui???

Boa tarde amigo…

Hoje pela manhã passei a manhã procurando um erro, em meu teste com taglib … que por coincidência é igual ao código que vc está testando …
Estava com o mesmo problema que você … mas GRAÇA A DEUS … :smiley: … Depois de cansar de procurar erro onde não tinha … encontrei o problema…!!!

Não sei se é o seu caso, mas o meu problema, é que no desenvolvimento de pages, eu utilizo o DreamWeaver MX … quando eu clico em NOVO … aí abri aquela espécie de modelos … aí selecionava DYNAMIC PAGE e JSP … esse é o problema … para o desenvolvedor é transparente … mais o DreamWeaver coloca algum caracter de controle ou coisa parecida no arquivo … que impede que a taglib enteda ${i} … não sei qual o motivo … mais se vc tbém utiliza o DreamWeaver … para continuar criando através dele basta criar NOVO um arquivo HTML comum que não dá problema, …

Cheguei a essa conclusão após ter testado o mesmo código criando a página através do Bloco de Notas!!! …

:smiley: … Espero ter ajudado … até mais …

Oi rodrigo, eu denovo …

O reply que coloquei acima … resolveu o problema de meus arquivos com taglib … quando os coloco em uma pasta tipo … javamagazine-jstl … consigo visualizar o resultado correto …

mas ainda não consegui fazer rodar junto com Struts …

Ricardo, eh problema da versao da JSTL sim.
Poderia ser problema do encoding tambem, mas creio que o $ faz parte da tabela ascii boba entao possui o mesmo codigo em qualquer encoding.

Minha dica, garanta que o seu servlet conteiner suporta as ultimas versoes de taglibs e jsp. Baixe a ultima versao da implementacao da jSTL do site do jakarta (1.1.2 se nao me engano) e divirta-se.

Fora isso, e mais importante, e’ boa pratica usar o seguinte:

<c:forEach var=“i” begin=“1” end=“4” varstatus=“status”>
${status.count}
</c:forEach>

Atenciosamente

Guilherme Silveira

Guilherme, é esse o problema mesmo… é a versão … estava com problemas parecido com o do Ricardo, aí troquei meu arquivo c.tld e funcionou 100%…

Mais uma pergunta, como posso verificar a versão do servlet, versão do jsp … eu utilizo o tomcat 5.0 ( utilizo tbém o Struts e banco MySQL ), isso significa que o JSP é 2.0 e o Servlet é o 2.4 ou 2.3 … como posso identificar essa informação … ???

Tenho a última versão conforme você sugere ao Ricardo … a versão que tenho é a seguinte:

jakarta-taglibs-standard-1.1.2 …

ao utilizar essa versão do taglibs, fiz o seguinte: copiei os arquivos jstl.jar e standard.jar para pasta WEB-INF/lib do meu projeto … copiei os arquivos c.tld, fn.tld, sql.tld e fmt.tld para a pasta WEB-INF … e configurei eles no arquivo WEB.XML ( uri … etc … )

Mais com esse procedimento … o problema continua…

Na pasta do jakarta-taglibs-standard-1.1.2/tld tem tbém uns arquivos com o c-1_0.tld, por exemplo … acredito que seja os arquivos referente a versão 1.0 do jstl, quando copio esse arquivo para WEB-INF e renomeio para c.tld … Aí funciona legal …

O que poderia estar faltando??

Desde já, obrigado pela ajuda…
desculpa o texto tão longo … :slight_smile:
Erick Pessoa

O tomcat 5.0 suporta servlets 2.4 e jsp 2.0. Ele tambem suporta versoes anteriores. Minha dica e’ ver o seu arquivo web.xml, ele define qual o tipo de aplicacao que voce possui.

O codigo a seguir define o cabecalho de uma aplicacao 2.4, repare que nao existe mais o DOCTYPE (que era da 2.3 para tras)

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4">

Tem dois detalhes ai que a nova versao da JSTL e JSP melhoram…
Apague todos os arquivos tlds! Voce nao precisa mais deles! Genial, nao?
Alias, nao precisa mais definir o tld no web.xml. Genial novamente. Fica tudo mais simples certo?

E na hora de usar a taglib basta escrever:
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

Espero que tenha ajudado

Guilherme Silveira
Caelum - www.caelum.com.br

bom dia, Guilherme…

Com certeza, ajuda muito…

Mais ainda tenho um probleminha, onde posso conseguir o arquivo .jar do servlet 2.4, até agora só encontrei a especificação dele.

Quando fiz a alteração que vc segureiu aí apareceu o seguinte erro, na janela de execução do tomcat … :

INFO: validateJarFile(C:\arquivos de programas\apache software foundation\tomcat 5.0\webapps\sac\WEB-INF\lib\servlet.jar) - jar not loaded. See Servlet Spec, section 9.7.2. Offending class: javax/servlet/servlet.class
SEVERE: Parse Fatal Error at line 99 column 1: XML document structures must start and end within the same entity.

Pois, não tenho o .jar do servlet 2.4, poderia me dar uma dica onde posso fazer o download?

Muito Obrigado,
Erick Pessoa

Cuidado la…

Sao dois erros que apareceram. o primeiro eh um info que foi ignorado.
O jeito mais facil de conseguir um servlet-api.jar da versao 2.4 eh ir no seu tomcat 5.0, diretorio common/lib. La tem um servlet-api da versao 2.4. Use :slight_smile:
Mesmo tendo a mensagem de INFO que a lib eh ignorada, NAO SE preocupe, ela eh ignorada.

O segundo erro eh SEVERE, nao permite o deploy. seu web.xml deve estar com dois web-app ou algo do genero, de uma olhadinha nele, confira a estrutura gramatical, por ultimo poste ele aqui…

Bom dia, Guilherme …

 td blz??

 Cara, show de bola ... funcionou que foi uma maravilha...
 Os erros eram o arquivo do servlet (JAR) versão 2.4 e o outro foi que no arquivo web.xml havia colocado:

 [quote]
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4">

 <web-app> <-- Deve ser retirado...

 ...
 [/quote]

 Por isso estava, dando o SEVERE FATAL ERROR ... 
 Agora está funcionando blz...

Muito Obrigado,
Erick Pessoa

exatamente

Que bom que o problema foi solucionado

Em breve irei atualizar as apostilas da Caelum no site e o capitulo de jsp tera informacoes como essa sobre jstl.

Atenciosamente

Guilherme Silveira