Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não Consigo montar meu objeto em um formulário após recuperado JSP.

Possuo um TABLE e Já consigo deletar, agora quero recurar o objeto no TABLE só que não estou conseguindo. Segue meu codigo.

view

<table border="1">
        <tr>
            <th>Codigo</th>
            <th>Nome</th>
            <th>Endereco</th>
            <th>email</th>
            <th>Data</th>
            <th>Remover</th>
            <th>Alterar</th>
        </tr>
        <c:forEach var="contato" items="${contatos}" varStatus="id">
            <tr bgcolor="${id.count % 2 == 0 ? 'aaeeff' : 'ffffff'}">
                <td>${contato.id}</td>
                <td>${contato.nome}</td>
                <td>${contato.endereco}</td>
                <td>
                    <c:choose>
                        <c:when test="${not empty contato.email}">
                             <a href="mailto:${contato.email}"> ${contato.email} </a>    
                        </c:when>
                        <c:otherwise>
                            Email não informado
                        </c:otherwise>
                    </c:choose>
                </td>
                <td>
                    <fmt:formatDate value="${contato.dataNascimento.time}" pattern="dd/MM/yyyy" />
                </td>
                <td> 
                    <a href="mvc?logica=RemoveContatoLogica&codigo=${contato.id}">Remover</a>
                </td>
                <td> 
                    <a href="mvc?logica=SelecionaContatoLogica&id=${contato.id}">Alterar</a>
                </td>
            </tr>
        </c:forEach>
    </table>

Monta o Objeto Selecionado

<body>

    <form action="mvc?logica=AdicionaContatoLogica">
        Nome<input type="text" name="nome" value="${contato.nome}"><br/>
        Email<input type="text" name="email" value="${contato.email}"><br/>
        Endereco<input type="text" name="endereco" value="${contato.endereco}"><br/>

        <input type="submit" value="Enviar">

    </form>

DAO

public Contato buscaPeloID(Contato contato) {
        String sql = "select * from contato where id = ?";

        try (PreparedStatement stmt = this.connection.prepareStatement(sql)) {
            stmt.setInt(1, contato.getId());
            ResultSet resultSet = stmt.executeQuery();

            while (resultSet.next()) {
                return buscaContato(resultSet);
            }
            resultSet.close();
            return null;
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

    }
private Contato buscaContato(ResultSet rs) throws SQLException {
        Contato contato = new Contato();
        contato.setId(rs.getInt("id"));
        contato.setNome(rs.getString("nome"));
        contato.setEmail(rs.getString("email"));
        contato.setEndereco(rs.getString("endereco"));
        Date data = rs.getDate("data_nascimento");
        if (data!= null) {
            Calendar dataNascimento = contato.getDataNascimento();
            dataNascimento.setTime(data);
            contato.setDataNascimento(dataNascimento);
        }
        return contato;
    }
public class SelecionaContatoLogica implements Logica {

    @Override
    public String executa(HttpServletRequest request, HttpServletResponse response) throws Exception {

        Integer codigo = Integer.parseInt(request.getParameter("id"));

        Contato c = new Contato();
        c.setId(codigo);

        Contato buscaPeloID = new ContatoDAO().buscaPeloID(c);

        request.setAttribute("contato", buscaPeloID); // Guarda o contato na requisição

        return "WEB-INF/jsp/altera-contato.jsp";
    }

}
1 resposta
solução!

resolvido!