Seguem meus arquivos.
Tenho o arquivo mostrar.jsp que mostra o conteúdo da tabela e numa das colunas tem o link para a rotina de exclusão só que tá dando o erro java.lang.NullPointerException.
Acho que não estou conseguindo passar o parâmetro do contato pela rotina. Por favor, ajudem. Estou iniciando em jsf.
valeu
[code]ContatosDAO.java
package agenda.dao;
import agenda.model.Contatos;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class ContatosDAO implements InterfaceContatosDAO {
private Connection conn;
private String Contato;
public ContatosDAO() throws ContatosDAOException {
try {
this.conn = ConnectContatosFactory.getConnection();
} catch (Exception e) {
throw new ContatosDAOException(“Erro” + “:\n” + e.getMessage());
}
}
public void salvar(Contatos contato) throws ContatosDAOException {
PreparedStatement ps = null;
Connection conn = null;
if(contato == null)
throw new ContatosDAOException(“O Valor passado não pode ser lido”);
try {
String sql = “insert into registros(nome,endereco,bairro,cidade,estado,cep,telefone)” + “values(?,?,?,?,?,?,?)”;
conn = this.conn;
ps = conn.prepareStatement(sql);
ps.setString(1, contato.getNome());
ps.setString(2, contato.getEndereco());
ps.setString(3,contato.getBairro());
ps.setString(4, contato.getCidade());
ps.setString(5, contato.getEstado());
ps.setString(6, contato.getCep());
ps.setString(7, contato.getTelefone());
ps.executeUpdate();
} catch (Exception sqle) {
throw new ContatosDAOException(“Erro ao inserir dados” + sqle);
}finally{
ConnectContatosFactory.closeConnection(conn, ps);
}
}
public List listarTodos() throws ContatosDAOException {
PreparedStatement ps = null;
Connection conn = null;
ResultSet rs = null;
try {
conn = this.conn;
ps = conn.prepareStatement(“select id,nome,endereco,bairro,” + “cidade,estado,cep,telefone from registros”);
rs = ps.executeQuery();
List list = new ArrayList();
while (rs.next()) {
int id = rs.getInt(1);
String nome = rs.getString(2);
String endereco = rs.getString(3);
String bairro = rs.getString(4);
String cidade = rs.getString(5);
String estado = rs.getString(6);
String cep = rs.getString(7);
String telefone = rs.getString(8);
list.add(new Contatos(id, nome, endereco, bairro, cidade, estado,
cep, telefone));
}
return list;
} catch (Exception sqle) {
throw new ContatosDAOException(sqle);
} finally {
ConnectContatosFactory.closeConnection(conn, ps, rs);
}
}
public void atualizar(Contatos contato) throws ContatosDAOException {
throw new UnsupportedOperationException(“Not supported yet.”);
}
public void excluir(Contatos contato) throws ContatosDAOException {
/*throw new UnsupportedOperationException(“Not supported yet.”);
*/
PreparedStatement ps = null;
Connection conn = null;
// if(contato == null)
// throw new ContatosDAOException(“O Valor AAAAAAAAApassado não pode ser lido”);
try {
String sql = “delete from registros where nome=?”;
System.out.println(sql);
conn = this.conn;
ps = conn.prepareStatement(sql);
// String a = (contato.getNome());
ps.setString(1,contato.getNome());
ps.executeUpdate();
} catch (Exception sqle) {
throw new ContatosDAOException(“Erro ao excluir dados” + sqle);
}finally{
ConnectContatosFactory.closeConnection(conn, ps);
}
}
}
[/code]
mostrar.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<html>
<f:view>
<head>
<f:loadBundle basename="agenda2.mensagens" var="msgs" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><h:outputText value="#{msgs.Titulo}"/></title>
<link rel="stylesheet" type="text/css" href="estilo.css">
</head>
<body>
<h:form>
<h3><h:outputText value="#{msgs.Titulo}"/></h3>
<h:dataTable value="#{contatos.todos}" var="agenda"
border="0" headerClass="cabecalho"
rowClasses="linha1,linha2">
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.Id}"
/>
</f:facet>
<h:outputText value="#{agenda.id}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.Nome}"
/>
</f:facet>
<h:outputText value="#{agenda.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.Endereco}"
/>
</f:facet>
<h:outputText value="#{agenda.endereco}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.Bairro}"
/>
</f:facet>
<h:outputText value="#{agenda.bairro}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.Cidade}"
/>
</f:facet>
<h:outputText value="#{agenda.cidade}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.Estado}"
/>
</f:facet>
<h:outputText value="#{agenda.estado}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.Cep}"
/>
</f:facet>
<h:outputText value="#{agenda.cep}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.Telefone}"
/>
</f:facet>
<h:outputText value="#{agenda.telefone}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Excluir"
/>
</f:facet>
<h:commandLink action="#{contatos.excluirContato}" value="Excluir" />
</h:column>
</h:dataTable>
<br />
<h:commandLink action="#{contatos.novoContato}" value="Novo Contato" />
</h:form>
</body>
</f:view>
</html>
[code]G:\novaagenda\src\java\agenda\control\ContatosController.java
package agenda.control;
import agenda.dao.ContatosDAO;
import agenda.dao.ContatosDAOException;
import agenda.dao.InterfaceContatosDAO;
import agenda.model.Contatos;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
public class ContatosController {
private Contatos contato;
private DataModel model;
public String novoContato() {
this.contato = new Contatos();
return "novo";
}
public Contatos getContato() {
return contato;
}
public void setContato(Contatos contato) {
this.contato = contato;
}
public DataModel getTodos() throws ContatosDAOException {
InterfaceContatosDAO icdao = new ContatosDAO();
model = new ListDataModel(icdao.listarTodos());
return model;
}
public String create() throws ContatosDAOException {
InterfaceContatosDAO icdao = new ContatosDAO();
icdao.salvar(contato);
return "sucesso_ins";
}
public String excluirContato() throws ContatosDAOException {
InterfaceContatosDAO icdao = new ContatosDAO();
icdao.excluir(this.contato);
return "excluido";
}
// Aqui acrescentaremos os métodos para Atualização e Exclusão.
}
[/code]