JSTL - Caelum

estou fazendo o exemplo da apostila fj21 da caelum, mas está ocorrendo um erro ao executar:

org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114)
org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:147)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1543)
org.apache.jasper.compiler.Parser.parse(Parser.java:126)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:146)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

&lt;%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%&gt;

&lt;html&gt;
	&lt;jsp:useBean id="dao" class="br.com.caelum.web.ContatoDAO"/&gt;
	
	ola
	&lt;c:forEach items="${dao.lista}" var="contato"&gt;
		<li>${contato.nome}</li>
	&lt;/c:forEach&gt;
	
&lt;/html&gt;

Alguem tem ideia do que pode ser? Estou usando o eclipse.

Confira se os jar’s estão dentro da pasta lib em WEB-INF.
Provavelmente é isto…

Até !!!

Opa grato reizin, importei para a pasta os jars standard e jstl, agora ta dando outro erro, a classe ContatoDAO esta no package correto, o nome da classe eh esse mesmo o que poderia ser? Alguem poderia me ajudar?

org.apache.jasper.JasperException: /bemvindo.jsp(4,1) The value for the useBean class attribute br.com.caelum.web.ContatoDAO is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1223)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Generator.generate(Generator.java:3270)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:189)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

br.com.caelum.web.ContatoDAO is invalid.

isso ta com cara de implementação incorreta da classe. Da uma olhada nela novamente…ou melhor crie a mesma novamente.

public class ContatoDAO {
private Connection connection;

public ContatoDAO() throws SQLException {
	this.connection = new ConnectionFactory().getConnection();

}

}

se ela esta assim … deve ser algo com os pacotes

No primeiro caso, a uri da jstel tá errada. Tá faltando um “jsp” lá no meio (confira na apostila).

No segundo, o pacote do ContatoDAO não é esse que você escreveu, é br.com.caelum.jdbc.dao

O meu package está correto não eh o mesmo da apostila eh: br.com.caelum.web.ContatoDAO e a minha classe eh ContatoDAO mesmo, sobre a implementação das classes como seria isso eu sou iniciante no java e tb no eclipse? eu criei a classe mas ela ainda naum acha será que tenho que direcionar para alguma outra pasta? alguem poderia me ajudar?

Como vc mesmo falou … talvez o problema seja na classe…verifique se ela segue os padrões (ou convensões) estipuladas pela sun… como no caso do dao.lista que vc esta tentando chamar. Verifique se ele segue a convensão ou tente chamar outro método para ver no que dá.

por “convensão” entenda “convenção” :roll: