Iniciante em jstl

Olá, estou iniciando em jsp agora e estou apanhando bastante, como todo mundo!
Só que tem algumas coisas que não consigo entender o que acontece, segue abaixo:
Uso o Eclipse 3.1 - Tomcat 4.1

Possuo uma aplicação JSPTESTE, acesso ela pelo TomCat normal e a mesma lista os meus arquivos da pasta WEB.
Tenho alguns arquivos que usam jstl, como o cabeçalho:
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
Já istalei o JSTL.JAR na pasta lib de minha aplicação, configurei o path no Eclipse e não roda…

Da o seguinte erro:
org.apache.jasper.JasperException: This absolute uri (http://java.sun.com/jsp/jstl/core) cannot be resolved in either web.xml or the jar files deployed with this application

O q podera ser?

Alex

Olá amigo especifique diretamente a tld em seu projeto… seguinte:

Pega a tld e joga dentro de:

WEB-INF/tlds/c-1_0-rt.tld

depois faça assim em seu código(JSP):

<%@ taglib uri="WEB-INF/tlds/c-1_0-rt.tld" prefix="c"%> 
<c:set var="hello_jstl" value="Olá JSTL" />
<c:out value="${hello_jstl}"/>

Se aparecer “Olá JSTL” é que deu certo! :wink:

abs,

Dentro da pasta do seu projeto tem uma pasta chamada WEB-INF lá tem um arquivo cahamdo web.xml, coloque esse código no arquivo web.xml mas lembre-se que onde eu escrevi jstl.tld deve ser o seu arquivo tld:

<taglib> <taglib-uri>c</taglib-uri> <taglib-location>/WEB-INF/jstl.tld</taglib-location> </taglib>

Mas o que teria nesta TDL?
Pq eu estou usando JAVA5…não sei se estou certo, mas ha uma forma de não usar TDL, somente configurando o ambiente!

Obrigado!

Amigo a TLD são as fontes onde se encontra o xml necessário para o funcionamento…

baixa ela aqui:

http://cvs.apache.org/builds/jakarta-taglibs/nightly/projects/standard/jakarta-taglibs-standard-20060418.zip

Substitui o cabeçalho por este e vê se funciona:

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

E coloca o jstl.jar e standar.jar no lib do seu projeto.

Estou baixando as TLD., valew…

Também coloquei no novo cabeçalho e não rolou, deu o seguinte erro:
org.apache.jasper.JasperException: This absolute uri (http://java.sun.com/jstl/core_rt) cannot be resolved in either web.xml or the jar files deployed with this application

Busque no google por “JSTL: facilitando o JSP” e leia o PDF, lá tem instruções de como instalar o seu ambiente corretamente.

Instalei as TLD e os JARS, configurei o Web.XML que esta assim:

<?xml version="1.0" encoding="ISO-8859-1"?> Aplicacao WEB Simples c /WEB-INF/tlds/c.tld

Criei uma aplicação:
<%@ taglib uri=“WEB-INF/tlds/c-1_0-rt.tld” prefix=“c”%>
<c:set var=“hello_jstl” value=“Olá JSTL” />
<c:out value="${hello_jstl}"/>

Mas deu agora o seguinte erro nesta aplicação:
javax.servlet.ServletException: javax/servlet/jsp/el/VariableResolver
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:195)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)

Procure usar as versões mais novas do Tomcat, que suportam JSP 2.0 e Servlet 2.4

Não tem q ficar pondo tld pra todos os lados e dá pra usar EL nativamente

Salve,
De uma lida neste tutorial…:
http://www.conexaojava.com.br/conexaojava04/download/minicursos/JSTL.facilitando.o.JSP-Conexao.Java.2004.pdf
Boa Sorte.

Amigos, aparentemente fiz tudo como manda nos tutoriais e como aqui no fórum e tenho um poblema interessante ao invés de aparecer o conteúdo da variavel aparece o nome da variável.

Ex:

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<c:set var=“nome”>Joao</c:set>
<c:out value="${nome}" />

Resulta em:

${nome}

Mas observei que algumas coisas funcionam por exemplo um loop, vejam:

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<c:forEach var=“i” begin=“1” end=“5”>
Funcionou!

</c:forEach>

O código acima funciona perfeitamente, mas se eu tentar imprimir uma variavel nao dá certo.

Por exemplo:

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<c:forEach var=“i” begin=“1” end=“5”>
${i}

</c:forEach>

Com isso ao invés de renderizar na tela o valor de i eu tenho somente o valor ${i} repetido 5 vezes

Ve se isso te ajuda:

Essa notação é nova, para o JSTL 1.1, se vc está usando o Tomcat 4,
então o JSTL é 1.0, logo a chamada da taglib é assim:

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

Tente colocar essa linha no seu jsp, parace que o jstl tah ok, o problema parece ser no el.

<%@page isELIgnored="false"%>

Galera consegiu resolver este problema com o jakarta-tomcat-5.0.28.

Deu tudo certinho…valew a todos que deram uma força brigadaum mesmo!
To me matando pra aprende esse JAVA, estudando muito…mas um dia chego la!

Valew a todos!

ALEX

Bom galera, pegando o gancho da discussao, eu estou usando o tomcat 6.0.14 … como devo colocar o cabeçalho?
vlw

<%@ taglib uri=“uri_da_taglib” prefix=“prefixo” %>
Exemplo.:
<%@ taglib uri=“http://java.sun.com/JSTL/core” prefix=“c” />

A sua IDE irá mostrar a “URI” o prefix automaticamente.;
http://www.devmedia.com.br/articles/viewcomp.asp?comp=3746&hl=jstl
http://www.1x4x9.info/files/jstl/html/online-chunked/
http://www.learntechnology.net/content/jstl/jstl_intro.jsp
sds.