LECHNER
Janeiro 2, 2007, 10:01pm
#1
Pessoal procurei algo nos tópicos ja existentes, mas não encontrei.
Acontece o seguinte:
Eu estou seguindo a apostila da CAELUM, nela fala para baixar o JSTL e colocar na pasta WEB-INF/LIB. Ate ai ok!
Só que qdo eu vou utilizar a JSTL ele fala que a tag C não existe.
No cabeçalho:
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core ” prefix=“c” %>
Se altero ele para:
<%@ taglib uri=“http://java.sun.com/jstl/core ” prefix=“c” %>
Some o erro, mas da erro na execução do JSP.
Verifiquei e os jars: servlet-api.jar / jasper-runtime.jar / jsp-api.jar
Eles estão na minha aplicação mas mesmo assim deu errado.
Se puderem me ajudar, por favor.
Obrigado
bb1
Janeiro 2, 2007, 10:45pm
#2
Cara, faz o seguinte:
Ponha o arquivo c.tld diretamente em WEB-INF ou subdiretorio.
Abra o arquivo c.tld e copie o que esta dentro da tag <uri>.
Ponha o arquivo jstl.jar E standard.jar dentro de WEB-INF/lib
Cole o conteudo de <uri> do tld no campo uri do seu jsp(ex. <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core ”%>).
pronto… agora eh soh usar as tags
bb1
Janeiro 2, 2007, 10:51pm
#3
Jsp pra teste, falowss
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<body>
<c:set var="first" value="primeiro valor"/>
<c:set var="last" value="ultimo valor"/>
<c:url value="/taltal.jsp" var="inputUrl">
<c:param name="first" value="primeiro valor"/>
<c:param name="last" value="ultimo valor"/>
</c:url>
Url será:${inputUrl}
<br>----------------------------------------------------------<br>
<%
String[] movies1 = {"Matrix","KillBill","Saints"};
String[] movies2 = {"Amelie","Return of king","Mean Girls"};
java.util.List movieList = new java.util.ArrayList();
movieList.add(movies1);
movieList.add(movies2);
request.setAttribute("movies",movieList);
request.setAttribute("movie1",movies1);
%>
<table>
<c:forEach var="listElement" items="${movies}">
<c:forEach var="movie" items="${listElement}">
<tr>
<td>${movie}<td>
</tr>
</c:forEach>
<tr><td>---------------------------------</td></tr>
</c:forEach>
</table>
<c:choose>
<c:when test="${1 == 1}">IF verdadeiro</c:when>
<c:otherwise>
IF falso
</c:otherwise>
</c:choose>
</body>
</html>
LECHNER
Janeiro 2, 2007, 11:56pm
#4
Cara valew pela força mas não rolou.
Em problems lista o erro:
taglib directive for “c” does not exist or TLD is not found
No meu WEB.xml coloquei:
http://java.sun.com/jstl/core
/WEB-INF/c.tld
Fiz o q vc falou e nda.
Mas então na apostila da CAELUM não fala nda de TLD, eu tenho q realmente ter estes TLDs?
Eu pensei q fosse o J2EE, instalei um arquivo de 130 MB e nda, veio ate webservice.
Se alguem puder ajudar, agradeço.
bb1
Janeiro 3, 2007, 3:01am
#5
Os arquivos jars indispensaveis são:
jstl.jar
standard.jar
Va em Tomcat/webapps/jsp-examples/WEB-INF/lib e pegue os arquivos acima e copie-os para o WEB-INF/lib da sua aplicação.
Realmente não eh necessario os arquivos tlds dentro de WEB-INF, pois eles ja estao presentes no arquivo standard.jar.
Em relação ao que voce declarou no web.xml nao tem importancia, pois a partir da versao 2.0 da jsp o Container procura os arquivos tlds automaticamente dentro de WEB-INF(no nosso caso dentro de standard.jar) e seus subdiretorios, inclusive dentro de arquivos .jar existentes na pasta lib
LECHNER
Janeiro 3, 2007, 10:40am
#6
Estranho mas ainda nda, o mesmo erro falando:
taglib directive for “c” does not exist or TLD is not found
Estou com o Tomcat:
apache-tomcat-5.5.20
JSTL:
jakarta-taglibs-standard-current
Coloquei no WEB-INF/lib os jars e nda.
Some o erro se eu apago do cabeçalho o /jsp deixando:
<%@ taglib uri=“http://java.sun.com/jstl/core ” prefix=“c”%>
Alterando o cabeçalho, colocando no WEB.xml a descrição das TLDs e as TLD no WEB-INF:
http://java.sun.com/jstl/core
/WEB-INF/tld/c.tld
Ai da certo, mas não era para dar certo somente com os jars da TagLib?
Pois eles estão na lib.
Alguem sabe?
Obrigado
bb1
Janeiro 3, 2007, 2:20pm
#7
Com certeza, só me vem a cabeca que a declaracao das tlds no web.xml eh necessaria se a versao do jsp for menor que 2.0.
Mas a partir do tomcat 5.* ja tras a versao 2.0.Eh estranho mesmo.
Faz o seguinte cara… desinstala o tomcat que vc tem e instala a versao 5.5.9 e tenta novamente
Cara ta uma briga feia isso…rsssss
Estou usando Eclipse 3.2 e Tomcat 5
Acho q o JSTL não ta rolando, pq a configuração de pagina de ERRO não ta rolando, da o erro abaixo no console:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: No suitable driver
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Valew
Estou enfrentando o mesmo problema. E apliquei as soluções passadas, mas tb não deram certo!
simberg
Janeiro 5, 2007, 1:04pm
#10
Descobri o meu problema, e agora está funcionando, eu estava tentando acessar uma classe de um pacote que estava fora do meu projeto, coloquei o pacote com a classe dentro de meu projeto e o problema acabou.