Hercles Posted March 20, 2021 at 12:44 AM Report #621768 Posted March 20, 2021 at 12:44 AM Olá! Eu criei uma lista no JSP que quando clikada no link "alterar" é aberto um formulário e nele vai todas as informações. A ideia seria que o usuário verifique as informações antes de alterar. O problema é que não consigo fazer esta alteração no banco. Não sei como enviar o nome da minha lógica com os parametros. Nem com um link e nem pelo botão do formulário. Vejam meu código. Grato,. O primeiro código abaixo tem o link para o alterar que envia os dados para a tela alterar. A tela de alterar é o código seguinte é aonde eu não consigo enviar os parametros com o nome da classe. O ultimo código é a classe que vai realmente alterar. <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Lista JSTL</title> </head> <body> <c:import url="cabecalho.jsp" /> <table> <!-- percorre contatos montando as linhas da tabela --> <th>Nome</th> <th>E-mail</th> <th>Endereço</th> <th>Dt Nasc</th> <c:forEach var="contato" items="${contatos}"> <tr> <td>${contato.nome}</td> <td><c:if test="${not empty contato.email}"> <a href="mailto:${contato.email}">${contato.email}</a> </c:if> <c:if test="${empty contato.email}"> E-mail não informado </c:if></td> <td>${contato.endereco}</td> <td><fmt:formatDate value="${contato.dataNascimento.time}" pattern="dd/MM/yyyy" /></td> <td><a href="mvc?logica=RemoveContatoLogica&id=${contato.id}">Remover</a> <td><a href="mvc?logica=ExibeFormAlterarPreechidoLogica&id=${contato.id}&nome=${contato.nome} &email=${contato.email}&endereco=${contato.endereco} &dataNascimento=${contato.dataNascimento.time}">Alterar</a> </td> </tr> </c:forEach> </table> <c:import url="rodape.jsp" /> </body> </html> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <%@taglib tagdir="/WEB-INF/tags" prefix="caelum"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Alterar JSTL</title> </head> <body> <c:import url="cabecalho.jsp" /> <h1>Alterar Contatos</h1> <hr /> <form action="mvc?logica=AlteraContatoLogica$"> <table> <tr> <td><h2>Id:${contato.id}</h2></td> </tr> <tr> <td>Nome:</td> <td><input type="text" name="nome1" value= 'porra' /> </td> </tr> <tr> <td>E-mail:</td> <td><input type="text" name="email" value="${contato.email}" /> </td> </tr> <tr> <td>Endereço:</td> <td><input type="text" name="endereco" value="${contato.endereco}" /></td> </tr> <tr> <td>Data Nascimento:</td> <!-- <td><caelum:campoData id="dataNascimento" /></td> --> <td><input type="text" name="dataNascimento" value="<fmt:formatDate value="${contato.dataNascimento.time}" pattern="dd/MM/yyyy" />"></td> </tr> </table> <input type="submit" value="Gravar" /> <a href="mvc?logica=AlteraContatoLogica&id=${contato.id}&nome=${contato.nome} &email=${contato.email}&endereco=${contato.endereco} &dataNascimento=${contato.dataNascimento.time}">Alterar</a> </form> <c:import url="rodape.jsp" /> </body> </html> package br.com.caelum.mvc.logica; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.com.caelum.jdbc.dao.ContatoDao; import br.com.caelum.jdbc.modelo.Contato; public class AlteraContatoLogica implements Logica { public String executa(HttpServletRequest req, HttpServletResponse res) throws Exception { Contato contato = new Contato(); contato.setId(Long.parseLong(req.getParameter("id"))); contato.setNome(req.getParameter("nome")); contato.setEmail(req.getParameter("email")); contato.setEndereco(req.getParameter("endereco")); Calendar calendar = Calendar.getInstance(); try { String data = req.getParameter("dataNascimento"); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); calendar.setTime(sdf.parse(data)); } catch (ParseException e) { System.out.println("Calenda ñ construido"); } contato.setDataNascimento(calendar); ContatoDao dao = new ContatoDao(); dao.altera(contato); System.out.println("Alterado contato... "); req.setAttribute("contato", contato); return "mvc?logica=ListaContatosLogica"; } } Grato por qualquer dica.
Solution Hercles Posted March 20, 2021 at 10:57 PM Author Solution Report #621770 Posted March 20, 2021 at 10:57 PM Quando eu digito no navegador funcioma… http://localhost:8080/agenda/mvc?logica=AlteraContatoLogica&id=8&nome=Ronaldo&email=r%40hotmail.com&endereco=Avenida+de+Santa+Cruz&dataNascimento=20%2F03%2F2021 Mas quando uso o botão do formuário, não vai a informação de logica=AlteraContatoLogica& para a url.
Hercles Posted March 20, 2021 at 11:41 PM Author Report #621771 Posted March 20, 2021 at 11:41 PM Era so ter usado o method="post" 🤣
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now