Displaytag enviar parâmetro para formulário

Bom dia Senhoras e Sendores,

Tenho uma página listando os dados do meu banco de dados através da taglib Displaytag, preciso pegar os dados de uma linha e envia-los para um formulário o qual é responsável pela alteração dos dados, estou completando o 4o dia e totalizando prováveis 20h nesta tarefa. Para complicar um pouco mais (ou não), a página que é responsável pela alteração é incorporada à página da lista através de ajax, então segue os códigos:

[color=darkred] lista-contatos.jsp [/color]


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

<%@ page contentType="text/html; charset=utf-8" language="java"%>

<jsp:include page="inc/header.jsp" flush="true" />
<jsp:directive.page import="org.displaytag.sample.*" />
<jsp:useBean id="dao" class="br.com.agenda.dao.ContatosDAO" />

<html>
<head>
<script language="javascript" src="js/ajax.js"></script>
<script language="javascript" src="js/instrucao.js"></script>
<link rel="stylesheet" href="css/displaytag.css" type="text/css"/> 

<title>Agenda online</title>
</head>
<body>

<% //Pog para setar o atributo que será usado pela displaytag
	request.setAttribute("contatos", dao.getLista());
%>
<display:table name="contatos" class="displaytag.css" defaultsort="1" >
	<display:column property="id" title="ID" />
	
	<%
	java.lang.System.out.println();
	%>
		
	<display:column property="nome" title="Nome" sortable="true" />
	<display:column property="email" title="E-mail" />
	<display:column property="telRes" title="Tel. Residêncial" />
	<display:column property="telCom" title="Tel. Comercial" />
	<display:column property="telCel" title="Celular" />
	<display:column property="endereco" title="Endereço" />
	<display:column property="dataNascimento.time"
		title="Data de Nascimento" format="{0,date,dd/MM/yyyy}" />
	
	<display:column>
		&lt;div id="menu"&gt;<a  >Alterar</a>&lt;/div&gt;
	&lt;/display:column&gt;
	
	&lt;display:column&gt;
		<a >Remove</a>
	&lt;/display:column&gt;
	&lt;display:column&gt;
	&lt;/display:column&gt;
&lt;/display:table&gt;

&lt;form action="adiciona-contato.jsp"&gt;&lt;input type="submit"
	value="Adicionar" /&gt; &lt;input type="hidden"
	value="mvc?logica=AdicionaContatoLogic" /&gt;&lt;/form&gt;



<br><br>
&lt;div id="conteudo_mostrar"&gt;&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;

[color=darkred] altera-contatos.jsp [/color]


&lt;form action="mvc?logica=AlteraContatoLogic"&gt;
&lt;table width="331" border="1"&gt;
  &lt;tr&gt;
    &lt;td width="149"&gt;&nbsp;&lt;/td&gt;
    &lt;td width="57"&gt;Atual&lt;/td&gt;
    &lt;td width="103"&gt;Novo&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Nome:&lt;/td&gt;
    &lt;td&gt;&nbsp;&lt;/td&gt;
    &lt;td&gt;&lt;input name="nome" type="text" size="50" maxlength="50" /&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;E-mail:&lt;/td&gt;
    &lt;td&gt;&nbsp;&lt;/td&gt;
    &lt;td&gt;&lt;input name="email" type="text" id="email" size="50" maxlength="50" /&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Tel. Res.:&lt;/td&gt;
    &lt;td&gt;&nbsp;&lt;/td&gt;
    &lt;td&gt;&lt;input name="telRes" type="text" id="telRes" size="10" maxlength="10" /&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Tel. Com.:&lt;/td&gt;
    &lt;td&gt;&nbsp;&lt;/td&gt;
    &lt;td&gt;&lt;input name="telCom" type="text" id="telCom" size="10" maxlength="10" /&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Tel. Cel.:&lt;/td&gt;
    &lt;td&gt;&nbsp;&lt;/td&gt;
    &lt;td&gt;&lt;input name="telCel" type="text" id="telCel" size="10" maxlength="10" /&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Endereço:&lt;/td&gt;
    &lt;td&gt;&nbsp;&lt;/td&gt;
    &lt;td&gt;&lt;input name="endereco" type="text" id="endereco" size="50" maxlength="50" /&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Data de nascimento:&lt;/td&gt;
    &lt;td&gt;&nbsp;&lt;/td&gt;
    &lt;td&gt;&lt;input name="dataNascimento" type="text" id="dataNascimento" size="10" maxlength="10" /&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;input type="hidden" name="id" value="xxxxx" /&gt;

&lt;/form&gt;

[color=darkred] instrucao.js [/color]


function abrirPag(valor){
var url = valor;

xmlRequest.onreadystatechange = mudancaEstado;
xmlRequest.open("GET",url,true);
xmlRequest.send(null);

if (xmlRequest.readyState == 1) {
document.getElementById("conteudo_mostrar").innerHTML = "<img >";
}

return url;
}

function mudancaEstado(){
if (xmlRequest.readyState == 4){
document.getElementById("conteudo_mostrar").innerHTML = xmlRequest.responseText;
}
}

Se você puder colaborar com código pronto, código pela metade, uma idéia, um link, uma apostila, uma moedinha de 5 centavos, eu agradeço, se não puder ajudar, agradeço da mesma forma. Caso a idéia do ajax atrapalhe muito nesta tarefa, não tem problema se o formulário de alteração esteja em outra página jsp

[color=orange]Imagens: [/color]

Você está colocando seu form, apenas no botão…

<form action="adiciona-contato.jsp"><input type="submit" value="Adicionar" /> <input type="hidden" value="mvc?logica=AdicionaContatoLogic" /></form>

Adiciona por linha inteira assim todo mundo irá quando você clicar no botão.

Haha você me ajudando novamente :stuck_out_tongue:
então, na verdade o “adiciona” está ok, vai para uma página que tem um formulário em branco para adicionar,
o problema está em enviar uma linha da displaytag para o form do altera-contatos.jsp

ID nome telefone alterar
1 nome1 telefone1 alterar
2 nome2 telefone2 alterar
3 nome3 telefone3 alterar

de forma que ao clicar em no 3o item alterar, ele vai enviar para o altera-contatos.jsp os parametros id=1&nome=nome3&telefone=telefone3
tendeu?

É nóis truta.

Coloca um form por linha. Mostrei o adiciona pq é o unico lugar que eu vi um form.

Cada linha ficaria com um form, assim ao clicar a linha teria seu valor enviado.

Primeiramente tentei assim:


&lt;display:column property="email" title="E-mail" &gt;&lt;form action="mv?logica=AlteraContatoLogic" method="get"&gt;&lt;/display:column&gt;

&lt;form action="mv?logica=AlteraContatoLogic" method="get"&gt;	
	&lt;display:column property="nome" title="Nome" sortable="true" /&gt;
	&lt;display:column property="email" title="E-mail" &gt;teste&lt;/display:column&gt;
	&lt;display:column property="telRes" title="Tel. Residêncial" /&gt;
	&lt;display:column property="telCom" title="Tel. Comercial" /&gt;
	&lt;display:column property="telCel" title="Celular" /&gt;
	&lt;display:column property="endereco" title="Endereço" /&gt;
	&lt;display:column property="dataNascimento.time"
		title="Data de Nascimento" format="{0,date,dd/MM/yyyy}" /&gt;
	&lt;display:column&gt;
		&lt;div id="menu"&gt;<a  >Alterar</a>&lt;/div&gt;
	&lt;/display:column&gt;
	
	&lt;display:column&gt;
		<a >Remove</a>
	&lt;/display:column&gt;
	&lt;display:column&gt;
	&lt;/display:column&gt;
&lt;/display:table&gt;

&lt;/form&gt;

Não funcionou destas formas, e nem entendo como funcionaria como o form saberia os parametros a serem enviados.
Olha cara, to perdido mesmo sou razoavelmente iniciante.

Tranquilo.

Não sei como funciona essa tag aí.

Sei que se vc tem

Linha1 valorA valorA valorA valorA valorA
Linha2 valorB valorB valorB valorB valorB

Você teria que ter:

Linha1 valorA valorA valorA valorA valorA Linha2 valorB valorB valorB valorB valorB

Ou então você faz por javascript. Fica a sua escolha.

é… por javascript ja vi uns caras fazendo, mas desta forma que tu disse creio eu que não seja possivel porque isso aqui:

<display:column property=“telCom” title=“Tel. Comercial” />

cria uma coluna, então se eu colocar

<form><display:column property=“telCom” title=“Tel. Comercial” /></form>

ele teoricamente criaria um form na coluna, nao dos dados dalinha, estou começando a pensar que o displaytag não foi feito pra isso.