Bom dia galera
Estou fazendo este exercício da apostila fj21:
Coloque um link na sua lista-contatos-elegante.jsp que abre a pagina teste-altera-mvc.jsp passando o id do contato que vc quer alterar. Deixe o campo id visível no form mas não alterável. Não esqueça de passar o campo id pela requisição. Faça com que os campos do form estejam populados com os dados do contato a ser editado.
bem, inseri o link na pagina:
<td><a href="mvc?logica=AlteraContatoLinkLogic&id=${contato.id}">Alterar</a></td>
criei esta logica para enviar os dados a serem alterados:
[code]package br.com.caelum.mvc.logica;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.caelum.agenda.dao.ContatoDao;
import br.com.caelum.agenda.modelo.Contato;
public class AlteraContatoLinkLogic implements Logica{
public void executa(HttpServletRequest req, HttpServletResponse res) throws Exception {
Long id = Long.parseLong(req.getParameter("id"));
ContatoDao contatoDao = new ContatoDao();
Contato contato = contatoDao.pesquisarContato(id);
req.setAttribute("nome",contato.getNome());
req.setAttribute("email",contato.getEmail());
req.setAttribute("endereco",contato.getEndereco());
req.setAttribute("nascimento",contato.getDataNascimento());
RequestDispatcher rd = req.getRequestDispatcher("testa-altera-mvc.jsp");
rd.forward(req, res);
}
} [/code]
e criei a pesquisa no contatodao:
[code]public Contato pesquisarContato(Long id){
Contato contato = new Contato();
try{
PreparedStatement stmt = this.connection.prepareStatement(“select * contato where id=?”);
ResultSet rs = stmt.executeQuery();
stmt.setLong(1,contato.getId());
contato.setId(rs.getLong(“id”));
contato.setNome(rs.getString(“nome”));
contato.setEmail(rs.getString(“email”));
contato.setEndereco(rs.getString(“endereco”));
rs.close();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
return contato;
} [/code]
Como eu resolvo isso ??[size=18] [/size]
Mas ao executar aparece esse erro :
java.lang.NumberFormatException: For input string: “”
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
java.lang.Long.parseLong(Long.java:453)
java.lang.Long.parseLong(Long.java:483)
br.com.caelum.mvc.logica.AlteraContatoLinkLogic.executa(AlteraContatoLinkLogic.java:13)
br.com.caelum.mvc.servlet.ControllerServlet.service(ControllerServlet.java:26)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)