FJ21 - JSTL - 7.7 - Exercícios: forEach [Resolvido]

Bom dia pessoal, estou fazendo os exercicios da apostila fj 21 e no 7.7 esta dando um problema q eu não consigo entender eu mando executar e da o seguinte erro:

[quote]type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /lista-contatos-elegante.jsp(6,7) Invalid standard action
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1129)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1420)
org.apache.jasper.compiler.Parser.parse(Parser.java:130)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:185)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:347)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.[/quote]

O codigo e exatamente o que esta na apostila.

[code]

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

${contato.nome} ${contato.email} ${contato.endereco} ${contato.dataNascimento.time}
[/code]

tem certeza de que esse é o caminho certo do seu dao? o seu metodo se chama realmente getLista(); ?

posta a DAO aí

Por algum motivo qnd eu fiz o exercicio 7.11 funcionou

mas como pedido vou mostrar minha dao

[code]package modelo;

import java.sql.Date;

import valida.Valida;

public class Contato {
private Long id;
private String nome;
private String email;
private String endereco;
private Date dataNascimento;
private String dataNascimentoString;

public String getNome() {
	return this.nome;
}

public void setNome(String novo) {
	this.nome = novo;
}

public String getEmail() {
	return this.email;
}

public void setEmail(String novo) {
	this.email = novo;
}

public String getEndereco() {
	return this.endereco;
}

public void setEndereco(String novo) {
	this.endereco = novo;
}

public Long getId() {
	return this.id;
}

public void setId(Long novo) {
	this.id = novo;
}

public Date getDataNascimento() {
	return this.dataNascimento;
}

public void setDataNascimento(Date dataNascimento) {
	this.dataNascimento = dataNascimento;
}

public String getDataNascimentoString() {
	Valida valida = new Valida();
	dataNascimentoString = valida.bdParaString(getDataNascimento());
	
	return dataNascimentoString;
}

public void setDataNascimentoString(String dataNascimentoString) {
	this.dataNascimentoString = dataNascimentoString;
}

}[/code]

e Jstl atualizada

[code]<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

${contato.nome} ${contato.email} ${contato.endereco} ${contato.dataNascimentoString}
[/code]

errei a classe

ai vai a certa

[code]package dao;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import modelo.Contato;

public class ContatoDAO {

private Connection connection;

public ContatoDAO() {
	this.connection = new FabricaConexao().getConnection();
}

public void adiciona(Contato contato) {
	String sql = "insert into contatos (nome,email,endereco, dataNascimento) values (?,?,?,?)";
	try {
		// prepared statement para inserção
		PreparedStatement stmt = connection.prepareStatement(sql);
		// seta os valores
		stmt.setString(1, contato.getNome());
		stmt.setString(2, contato.getEmail());
		stmt.setString(3, contato.getEndereco());
		stmt.setDate(4, contato.getDataNascimento());
		// executa
		stmt.execute();
		stmt.close();

	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

public List<Contato> getLista() {
	try {
		List<Contato> contatos = new ArrayList<Contato>();
		PreparedStatement stmt = this.connection
				.prepareStatement("select * from contatos");
		ResultSet rs = stmt.executeQuery();

		while (rs.next()) {
			Contato contato = new Contato();
			contato.setNome(rs.getString("nome"));
			contato.setEmail(rs.getString("email"));
			contato.setEndereco(rs.getString("endereco"));
			contato.setDataNascimento(rs.getDate("dataNascimento"));
			
			contatos.add(contato);
		}
		rs.close();

		stmt.close();
		return contatos;
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}

}

public void altera(Contato contato) {
	String sql = "update contatos set nome=?, email=?, endereco=?, dataNascimento=? where id=?";

	try {
		PreparedStatement stmt = connection.prepareStatement(sql);
		stmt.setString(1, contato.getNome());
		stmt.setString(2, contato.getEmail());
		stmt.setString(3, contato.getEndereco());
		stmt.setDate(4, contato.getDataNascimento());
		stmt.setLong(5, contato.getId());
		stmt.execute();
		stmt.close();
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

public void remove(Contato contato) {
	try {
		PreparedStatement stmt = connection
				.prepareStatement("delete from contatos where id=?");
		stmt.setLong(1, contato.getId());
		stmt.execute();
		stmt.close();
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

}[/code]

Então vc já arrumou ?

O caminho da classe eu tinha colocado certo mas continou com o erro.

Já tentou debugar o metodo listar?
As vezes a lista está chegando vazia na sua VIEW

Arrumou, so q eu n entendi pq dps q eu coloquei pra validar o e-mail começou a funcionar

Blza então…
Edita o titulo do post para [Resolvido] então