Exemplo da Apostila Caelum

Pessoal,

Estou usando o material da Caelum para treinar um pouco e fiz uma página JSP que quero simplesmente listar os registros de uma tabela, nesse caso usando o DAO como eles sugerem e a página dá o seguinte erro:

An error occurred at line: 9 in the jsp file: /contato.jsp
ContatoDAO cannot be resolved to a type
6: <html>
7: <body>
8: <%
9: 	ContatoDAO dao = new ContatoDAO();
10:   	List<Contato> contatos = dao.getLista();
11:   	for (int i = 0; i < contatos.size(); i++ ) {
12: 		Contato contato = (Contato) contatos.get(i);

O código da página JSP é:

<%@ page import="java.util.*" %>
<%@ page import="appl.dao.*" %>
<%@ page import="appl.factory.*" %>
<%@ page import="appl.pojo.*" %>

<html>
<body>
<%
	ContatoDAO dao = new ContatoDAO();
  	List<Contato> contatos = dao.getLista();
  	for (int i = 0; i < contatos.size(); i++ ) {
		Contato contato = (Contato) contatos.get(i);
%>
		    <li><%=contato.getNome()%></li>
<%
  		}
%>
</body>
</html>

Na apostila ele fala do acontecimento do erro, manda fazer o Quick Fix mas nada adianta. Alguma sugestão para concertar esse erro?

verifica se o import ta sendo do pacote certo.

Tá na mensagem, é a primeira imagem.

se caso não resolver importa a classe implicitamente…

Seria dessa forma:

<%@ page import="java.util.*" %>
<html>
<body>
<%
	appl.dao.ContatoDAO dao = new appl.dao.ContatoDAO();
  	List<appl.pojo.Contato> contatos = dao.getLista();
  	for (int i = 0; i < contatos.size(); i++ ) {
		appl.pojo.Contato contato = (appl.pojo.Contato) contatos.get(i);
%>
		    <li><%=contato.getNome()%></li>
<%
  		}
%>
</body>
</html>

O erro permanece:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 5 in the jsp file: /contato.jsp
appl.dao.ContatoDAO cannot be resolved to a type
2: <html>
3: <body>
4: <%
5: 	appl.dao.ContatoDAO dao = new appl.dao.ContatoDAO();
6:   	List<appl.pojo.Contato> contatos = dao.getLista();
7:   	for (int i = 0; i < contatos.size(); i++ ) {
8: 		appl.pojo.Contato contato = (appl.pojo.Contato) contatos.get(i);


An error occurred at line: 5 in the jsp file: /contato.jsp
appl.dao.ContatoDAO cannot be resolved to a type
2: <html>
3: <body>
4: <%
5: 	appl.dao.ContatoDAO dao = new appl.dao.ContatoDAO();
6:   	List<appl.pojo.Contato> contatos = dao.getLista();
7:   	for (int i = 0; i < contatos.size(); i++ ) {
8: 		appl.pojo.Contato contato = (appl.pojo.Contato) contatos.get(i);


An error occurred at line: 6 in the jsp file: /contato.jsp
appl.pojo.Contato cannot be resolved to a type
3: <body>
4: <%
5: 	appl.dao.ContatoDAO dao = new appl.dao.ContatoDAO();
6:   	List<appl.pojo.Contato> contatos = dao.getLista();
7:   	for (int i = 0; i < contatos.size(); i++ ) {
8: 		appl.pojo.Contato contato = (appl.pojo.Contato) contatos.get(i);
9: %>


An error occurred at line: 8 in the jsp file: /contato.jsp
appl.pojo.Contato cannot be resolved to a type
5: 	appl.dao.ContatoDAO dao = new appl.dao.ContatoDAO();
6:   	List<appl.pojo.Contato> contatos = dao.getLista();
7:   	for (int i = 0; i < contatos.size(); i++ ) {
8: 		appl.pojo.Contato contato = (appl.pojo.Contato) contatos.get(i);
9: %>
10: 		    <li><%=contato.getNome()%></li>
11: <%


An error occurred at line: 8 in the jsp file: /contato.jsp
appl.pojo.Contato cannot be resolved to a type
5: 	appl.dao.ContatoDAO dao = new appl.dao.ContatoDAO();
6:   	List<appl.pojo.Contato> contatos = dao.getLista();
7:   	for (int i = 0; i < contatos.size(); i++ ) {
8: 		appl.pojo.Contato contato = (appl.pojo.Contato) contatos.get(i);
9: %>
10: 		    <li><%=contato.getNome()%></li>
11: <%


Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:93)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:435)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

a classe appl.dao.ContatoDAO ta sendo gerada dentro do seu WEB-INF/classes?
tem certeza do nome do pacote?

Como tá a estrutura do seu projeto ?

Pessoal, consegui resolver, o problema é que o Eclipse de alguma forma ao tentar criar o diretório WEB-INF ele remove o traço (-) e ficou assim WEBINF, ao ver a resposta para ver a estrutura percebi o nome do diretório errado. Valeu pela ajuda.