Dúvida JSP

Galera, boa noite, queria saber como faço para passar um parametro de uma pagina para outra em JSP.

Por exemplo: tenho uma pagina JSP que exibe os contatos cadastrados no banco, coloquei um botão para remover, sómente para testes mesmo, queria que quando clicasse em remover, salvasse o id, e o nome do contato selecionado, e eu recebesse em outra pagina minha.

Segue o código das paginas:


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"  %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Lista de contatos</title>
</head>
<body>

<c:import url="cabecalho.jsp"></c:import>

<jsp:useBean id="dao" class="br.com.caelum.jdbc.dao.ContatoDAO" />
<table border="1">

	 <c:forEach var ="contato" items="${dao.lista}" varStatus="id">
	 	<tr bgcolor="${id.count % 2 == 0 ? 'e8e8e8':'ffffff'}">
	 	 
	 	 	<td>${id.count}</td>
	 		
	 		<td>${contato.nome}	</td>

	 		<td>
	 		<c:choose>
	 		<c:when test="${not empty contato.email}">
	 		<a href="mailto:${contato.email}">${contato.email}
	 		</c:when>
	 		<c:otherwise> E-mail não informado	</c:otherwise>
	 		</c:choose>
	 		</td>
	 		
	 		<td>${contato.endereco}	</td>
	 		
	 		<td> <fmt:formatDate value="${contato.dataNascimento.time}" pattern="dd/MM/yyyy"/>	</td>
	 		
	 		<td><input type="submit" value="Remover"></td>
	 			 
	 	</tr>
	 </c:forEach>
</table>
<br/>

<form action="adiciona-contatos.jsp">
<input type="submit" value="Novo Contato" >
</form>

<c:import url="rodape.jsp"></c:import>
</body>
</html>

Ou você armazena esses dados em um bean que as duas páginas possam acessar, ou no outro bean busca os dados do bean da outra página.

jeffev ,

Sou novo em web, estou estudando agora… você pode me mostrar um exemplo ?

Vc precisa passar os parâmetros para a outra página JSP que vai receber via get o id e o nome.

Neste link tem um exemplo: http://www.guj.com.br/java/272887-passar-parametro-em-pagina-jsp-

[quote=paulohms]jeffev ,

Sou novo em web, estou estudando agora… você pode me mostrar um exemplo ?

[/quote]

Os exemplos não serviu, estou utilizando JSTL…

Alguem sabe me falar como faço para mandar os dados para a servlet, e depois mostrar o resultado em outra quando eu clicar no botão remover ?

Para enviar valor de uma página para outra eu faço como isso aqui: Criando um WebServer.

Hebert,

No meu caso, minha pagina recupera os valores do banco e exibe em uma tabela, e eu queria passar o parametro apenas da linha clicada para remover pode exemplo :

id: nome: telefone:
1 Paulo 88888888 REMOVER
2 Hebert 88888888 REMOVER

suponhamos que eu clique em remover na linha do seu nome, queria enviar os parametros referente sómente ao seu nome para a servlet,

se eu fizer isso dentro do <td> <input type="submit" value="Remover"> </td> daria certo pegando ${param.nome}… dentro de um form ?

[quote=paulohms]Hebert,

No meu caso, minha pagina recupera os valores do banco e exibe em uma tabela, e eu queria passar o parametro apenas da linha clicada para remover pode exemplo :

id: nome: telefone:
1 Paulo 88888888 REMOVER
2 Hebert 88888888 REMOVER

suponhamos que eu clique em remover na linha do seu nome, queria enviar os parametros referente sómente ao seu nome para a servlet,

se eu fizer isso dentro do <td> <input type="submit" value="Remover"> </td> daria certo pegando ${param.nome}… dentro de um form ?
[/quote]Ainda no exemplo que eu te passei.

Faria do mesmo modo. A diferença é que lá tenho um form para página toda, no seu caso, teria um form para cada linha. Cada form teria seu próprio botão enviar.

Hebert, desculpa ai cara, mais n to conseguindo ;S

Olha da forma que eu tentei… tentei também pegando o ${contato.nome} direto…

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"  %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Lista de contatos</title>
</head>
<body>

<c:import url="cabecalho.jsp"></c:import>

<jsp:useBean id="dao" class="br.com.caelum.jdbc.dao.ContatoDAO" />
<table border="1">

	 <c:forEach var ="contato" items="${dao.lista}" varStatus="id">
	 	<tr bgcolor="${id.count % 2 == 0 ? 'e8e8e8':'ffffff'}">
	 	 
	 	 <form action="mvc" method="POST">
	 	 
	 	 	<td>${id.count}</td>
	 		
	 		<td>${contato.nome}	</td>
	 		
	 		<input type="hidden" name="nome" value="${contato.nome}" />

	 		<td>
	 		<c:choose>
	 		<c:when test="${not empty contato.email}">
	 		<a href="mailto:${contato.email}">${contato.email}
	 		</c:when>
	 		<c:otherwise> E-mail não informado	</c:otherwise>
	 		</c:choose>
	 		</td>
	 		
	 		<td>${contato.endereco}	</td>
	 		
	 		<td> <fmt:formatDate value="${contato.dataNascimento.time}" pattern="dd/MM/yyyy"/>	</td>
	 		
	 		<td>
	 		<input type="hidden" name="logica" value="RemoveContatoLogic" />
	 		<input type="submit" value="Remover">
			</td>
			
			</form>
	 	</tr>
	 </c:forEach>
</table>
<br/>

<form action="adiciona-contatos.jsp">
<input type="submit" value="Novo Contato" >
</form>

<c:import url="rodape.jsp"></c:import>
</body>
</html>
public void executa(HttpServletRequest req, HttpServletResponse res)
			throws Exception {
		
		Contato contato = new Contato();
		
		contato.setNome(req.getParameter("nome"));
		
		RequestDispatcher rd = req.getRequestDispatcher("/remover-contatos.jsp");
		rd.forward(req, res);
		
		System.out.println("Remover o contato" + contato.getNome());
		
	}

Você envia dado com input. Coloque junto com as informacoes que você está exibindo faça:

${carro.nome} <input type="hidden" value="${carro.nome}" />


No exemplo acima passo dois parâmetros para a pagina "pagina_que_faz_o_processamento.jsp" , pra pegar os parametro é só fazer o seguinte:
[code]
String s = request.getParameter("parametro1");
String s2 = request.getParameter("parametro2");
[/code]

Obs: os parâmetros vão via get, caso tenha que ser via post, você tem que enviar via form.

No exemplo acima passo dois parâmetros para a pagina “pagina_que_faz_o_processamento.jsp” , pra pegar os parametro é só fazer o seguinte:

String s = request.getParameter("parametro1");
String s2 = request.getParameter("parametro2");

Obs: os parâmetros vão via get, caso tenha que ser via post, você tem que enviar via form.

já testou isto :

[code] Remover

[/code]

Voce pode usar Ajax, ou entao fazer um submit para uma action.

document.form.action = “action.do?id=”+idPassado;
document.form.submit;

[quote=rof20004]Voce pode usar Ajax, ou entao fazer um submit para uma action.

document.form.action = “action.do?id=”+idPassado;
document.form.submit;[/quote]Calma mano, o cara não ta sabendo request simples… Deixe-o começar pelo básico para depois aprender o heavy metal! :twisted: :twisted:

ahhhhhh, foi mal ‘-’