@madv escreveu:
Olá pessoal, estou realizando o exercício opcional da apostila CAELUM-JAVA-WEB FJ21 no exercício 9.11
AlterarContatosLogic.Tenho todas as páginas criadas e aparentemente funcionando. a página de cadastro funciona perfeitamente.
CLASSE Adiciona Alunos HTML
Cadastro de Alunos
Nome: <input type="text" name="nome" /><br /> Email: <input type="text" name="email" /><br /> Data Nasc: <input type="text" name="datanasc"> <br /> Telefone: <input type="text" name="telefone" /><br /> Endereço: <input type="text" name="endereco" /><br /> <input type="submit" value="Gravar">
<a target="_blank" href="mvc?logica=ListaAlunosLogic">Alunos Cadastrados</a></a>
CLASSE AdicionaAlunosLogic
public class AdicionaAlunosLogic implements Logica{
@Override public String executa(HttpServletRequest req, HttpServletResponse resp) throws Exception { String nome = req.getParameter("nome"); String email = req.getParameter("email"); String dataFormatada = req.getParameter("datanasc"); Calendar datanasc = null; try { java.util.Date data = new SimpleDateFormat("dd/MM/yyyy").parse(dataFormatada); datanasc = Calendar.getInstance(); datanasc.setTime(data); } catch (Exception e) { System.out.println("Impossível formatar a data!"); } String telefone = req.getParameter("telefone"); String endereco = req.getParameter("endereco"); Aluno aluno = new Aluno(); aluno.setNome(nome); aluno.setEmail(email); aluno.setDatanasc(datanasc); aluno.setTelefone(telefone); aluno.setEndereco(endereco); AlunoDao alunoDao = new AlunoDao(); alunoDao.adicionaAluno(aluno); //return "mvc?logica=ListaAlunosLogic"; return "adicionaAlunos.html"; }
}
CLASSE ListaAlunos jsp
<!-- percorre contatos montando as linhas da tabela --> <tr> <th>Nome</th> <th>Data Nasc</th> <th>Email</th> <th>Telefone</th> <th>Endereço</th> <th>Remover</th> <th>Editar</th> </tr> <c:forEach var="aluno" items="${alunos}"> <tr> <td>${aluno.nome}</td> <td><fmt:formatDate value="${aluno.datanasc.time}" pattern="dd/MM/yyyy" /></td> <td> <c:if test="${not empty aluno.email}"> <a href="malito:{alunno.email}"> ${aluno.email} </a> </c:if> <c:if test="${empty aluno.email}"> Email não informado! </c:if> </td> <td>${aluno.telefone}</td> <td>${aluno.endereco}</td> <td> <a href="mvc?logica=RemoveAlunosLogic&id=${aluno.id}">Remover</a></a> </td> <td> <a href="mvc?logica=PaginaAlteraAlunosLogic&id=${aluno.id}">Editar</a></a> </td> </tr> </c:forEach> </table> <c:import url="/WEB-INF/jsp/rodape.jsp" />
Classe RemoveAlunosLogic
public String executa(HttpServletRequest req, HttpServletResponse res)
throws Exception {int id = Integer.parseInt(req.getParameter("id")); Aluno aluno = new Aluno(); aluno.setId(id); AlunoDao alunoDao = new AlunoDao(); alunoDao.removeAluno(aluno); System.out.println("Aluno " + aluno.getId() + " " + aluno.getNome() + " Excluído com sucesso!"); return "mvc?logica=ListaAlunosLogic" }
}
Esta tudo funcionando!
O problema é que quero na página de listagem clicar no botão editar de um determinado alunos e ser redirecionado para uma página identica a de adicionar Alunos, já com os dados preenchidos e la realizar a edição e clicar em salvar. Os métodos já estão prontos e funcionando, so não sei como chamar a página de edição através do link.
CLASSE AlteraAlunosLogic
public class AlteraAlunosLogic implements Logica {
@Override public String executa(HttpServletRequest req, HttpServletResponse resp) throws Exception { String nome = req.getParameter("nome"); String email = req.getParameter("email"); String dataFormatada = req.getParameter("datanasc"); Calendar datanasc = null; try { java.util.Date data = new SimpleDateFormat("dd/MM/yyyy").parse(dataFormatada); datanasc = Calendar.getInstance(); datanasc.setTime(data); } catch (Exception e) { System.out.println("Impossível formatar a data!"); } String telefone = req.getParameter("telefone"); String endereco = req.getParameter("endereco"); Aluno aluno = new Aluno(); aluno.setNome(nome); aluno.setEmail(email); aluno.setDatanasc(datanasc); aluno.setTelefone(telefone); aluno.setEndereco(endereco); AlunoDao alunoDao = new AlunoDao(); alunoDao.alteraAluno(aluno); return "mvc?logica=ListaAlunosLogic"; }
}
e a CLASSE AlteraAlunos jsp
Alterar Cadastros
<form action="mvc?logica=AlteraAlunosLogic" method="post"> <c:forEach var="aluno" items="${alunos}"> Nome: <input type="text" name="novoNome" value="${aluno.nome}" /> <br /> Email: <input type="text" name="novoEmail" /> <br /> Data Nasc: <input type="text" name="novaDatanasc"> <br /> Telefone: <input type="text" name="novoTelefone" /> <br /> Endereço: <input type="text" name="novoEndereco" /> <br /> <input type="submit" value="Alterar"> </c:forEach> </form>
NÃO SEI COMO CHAMAR ESSA CLASSE JSP NO LINK DA PÁGINA DE LISTAGENS ANTERIORMENTE MOSTRADA.
criei uma classe apenas para chamar a classe jsp para alterar os dados, mas simplesmente não consigo chama-la pelo link da página de listagem
public class PaginaAlteraAlunosLogic implements Logica{
@Override public String executa(HttpServletRequest req, HttpServletResponse resp) throws Exception { // TODO Auto-generated method stub return "/WEB-INF/jsp/alteraAlunos.jsp"; }
}
Trecho da página de listagem
<td> <a href="mvc?logica=RemoveAlunosLogic&id=${aluno.id}">Remover</a></a> </td> <td> <a href="mvc?logica=PaginaAlteraAlunosLogic&id=${aluno.id}">Editar</a></a> </td>
POR FAVOR ALGUEM PODE ME DAR UMA LUZ? Onde posso está errando?
Sempre que clico no link para chamar a página de edição, recebo uma página em branco como resultado, mas não retorna nem um erro!
Mensagens: 13
Participantes: 2