A lista de contatos está assim:
nome - email - endereco
nome2 - email2 - endereco2
nome3 - email3 - endereco3
ao clicar em uma das linhas(que representa um registro, uma pessoa) você vá para a página de alteração com o campo id preenchido com a pessoa que você escolheu alterar.
sendo assim você pode fazer isso:
na tabela da lista elegante você cria a seguinte td, antes dessa td - > <td>${contato.nome}</td>
<td><a href="altera-contato.jsp?id=${contato.id}">${contato.id}</a></td>
Sendo assim a lista agora vai ficar da seguinte maneira
id - nome - email - endereco
id2 -nome2 - email2 - endereco2
id3- nome3 - email3 - endereco3
(cada “id” representa o id que está no banco de dados)
seu método getLista() da classe ContatoDAO deve ser mais ou menos assim:
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.setId(rs.getLong("id")); //ADICIONE ESSA LINHA AQUI
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
Calendar data = Calendar.getInstance();
data.setTime(rs.getDate("dataNascimento"));
contato.setDataNascimento(data);
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
} catch(SQLException e) {
throw new RuntimeException(e);
}
}
se o método estiver um pouco diferente não tem problema, o que você precisa é pegar o Id.
agora no arquivo altera-contato.jsp coloque a seguinte linha:
Id: <input type="text" name="id" value="${param.id}" disabled="disabled"/><br/>
ou seja, você vai criar uma lista com de contatos, o id da lista é um link para a página de alteração, a página de alteração tem um campo do tipo text que esta esperando esse id, agora você pode alterar essa pessoa.
obs: não estamos preechendo todos dados no form(que seria o correto e elegante), apenas estamos adquirindo o id para podermos preencher o form e mandar para a alteração.