Fala, fera!
Eu estava com um problema parecido com o seu. Não estava conseguindo obter os dados do
Contato escolhido pelo usuário no JSP.
Descobri que a forma de resolver seria dentro da lógica
MostraContatoLogic que seria chamada pela lista de contatos:
<td><a href="mvc?logica=MostraContatoLogic&id=${contato.id}">Editar</a></td>
Resolvi, dentro dessa lógica, anexando na requisição o bean
Contato, obtido no método
getContato(long id) do
ContatoDAO:
public class MostraContatoLogic implements Logica {
@Override
public String executa(HttpServletRequest req, HttpServletResponse res)
throws Exception {
req.setAttribute("contato", new ContatoDAO().getContato((long)Integer.parseInt(req.getParameter("id"))));
return "/teste-altera-mvc.jsp";
}
}
Dessa forma, quando depois acessei pelo JSP, os dados do
Contato puderam ser acessados diretamente, pois já estavam anexados ao corpo da requisição.
<form action="mvc" method="post">
Id: <input type="text" name="id" readonly="readonly" value="${contato.id}" /><br />
Nome: <input type="text" name="nome" value="${contato.nome}"/> <br />
E-mail: <input type="text" name="email" value="${contato.email}"/> <br />
Endereço: <input type="text" name="endereco" value="${contato.endereco}"/> <br />
Data de Nascimento: <input type="text" name="dataNascimento" value="<fmt:formatDate value="${contato.dataNascimento.time}" pattern="dd/MM/yyyy"/>" />
<input type="hidden" name="logica" value="AlteraContatoLogic" />
<input type="submit" value="Enviar"/>
</form>
Os mais antigos por favor me corrijam, caso eu tenha dito algo incorreto.
Espero ter ajudado.
Abraços