Parametros[POST] no DisplayTag [RESOLVIDO]

15 respostas
A

Olá Galera,

Depois de muito custo consegui fazer minha displaytag funcionar do jeito mais básico, ou seja, cria uma tabela !!! Agora preciso criar os campos “Alterar” e “Remover” no displaytag, porém não consegui.

lista-contato:

<%@ taglib uri="http://displaytag.sf.net" prefix="display"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<link rel="stylesheet" href="css/displaytag.css" type="text/css">
<link rel="stylesheet" href="css/screen.css" type="text/css">
<link rel="stylesheet" href="css/site.css" type="text/css">

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Lista Contatos</title>

</head>

<body>

	<display:table name="lista" export="false" sort="list">
		<display:column property="id" title="ID" />
		<display:column property="nome" title="Nome" sortable = "true"/>
		<display:column property="email" title="Email" autolink="true" />
		<display:column property="endereco" title="Endereco" />
		<display:column title="Data" property="data"
			format="{0,date,dd-MM-yyyy}" />		
	</display:table>
	
	<form action="/myportal/atualiza-contato.jsp" method="post">
		
		<input type="hidden" name="id" value="50"/>
					<input type="hidden" name="data" value="2012-05-12"/>
					<input type="hidden" name="nome" value="Teste"/>
					<input type="hidden" name="endereco" value="Endereco"/>
					<input type="hidden" name="email" value="Email"/>
					<input type="submit" value="Alterar"/>
		</form>  	
	    



</body>
</html>

Coloquei um forme de exemplo, eu gostaria de conseguir colocar um form ou algo do tipo em uma coluna, que quando clicar, ele fizesse a mesma ação do form. Alguem tem alguma sugestão ? Vlw !!!

15 Respostas

A

estava com problemas com o displaytag e consegui resolver a maior parte deles hoje, no momento estou empacada na exportação do xml e csv.
vou postar meu codigo, talvez te ajude, abstraia algumas partes pois se referem a interação com jquery.

<display:table name="${tarefas}" id="tarefa" pagesize="3" export="true" sort="list" requestURI="" class="lista" > <display:column property="id" title="ID" sortable="true" href="mostraTarefa?id=method" paramId="id" paramProperty="id" /> <display:column property="descricao" title="Descrição" class="descricaoTd" /> <display:column title="Finalizado?" sortable="true" class="tarefa_${tarefa.id}"> <c:if test="${tarefa.finalizado == 0}"> <a href="#" onclick="finalizaTarefa(${tarefa.id})"><img src="resources/images/mais.png" /></a> </c:if> <c:if test="${tarefa.finalizado == 1}"> <img src="resources/images/ok-azul.png" /> </c:if> </display:column> <display:column title="Data de Finalização" sortable="true" class="tarefa_data_${tarefa.id}"> <fmt:formatDate value="${tarefa.dataFinalizacao.time}" pattern="dd/MM/yyyy" /> </display:column> <display:column title="Editar" > <a href="mostraTarefa?id=${tarefa.id}"><img src="resources/images/editar.png" /></a> </display:column> <display:column title="Excluir"> <a href="#" onclick="removeTarefa(${tarefa.id})"><img src="resources/images/remover.png" /></a> </display:column> <display:setProperty name="export.excel.filename" value="tarefas.xls" /> <display:setProperty name="export.csv.filename" value="tarefas.csv" /> <display:setProperty name="export.pdf.filename" value="tarefas.pdf" /> <display:setProperty name="export.pdf" value="true" /> <display:setProperty name="export.xml" value="false" /> </display:table>

A

Aee Galera peguei algumas dicas do código do andreacerqueira e consegui criar oque eu queria !!! Ficou perfeito.

Segue parte do código para quem precisar:

<display:table name="${lista}" id="lista" export="false" sort="list">
		<display:column property="id" title="ID" />
		<display:column property="nome" title="Nome" sortable = "true"/> 
                <display:column title="Editar" > 
                      <form action="controller" method="POST">
		         <input type="hidden" name="id" value="${lista.id}"/>
		         <input type="hidden" name="data" value="${lista.nome}"/>
                         <input type="submit" value="Editar" />
                         <input type="hidden" name="logica" value="AtualizaContato"/>
                      </form>  
                  </display:column>  
</display:table>
A

consegui ajudar alguém :slight_smile:
que bom.
ahh consegui o displaytag.property com os termos em portugues.
se quiser…

L

andreacerqueira:
estava com problemas com o displaytag e consegui resolver a maior parte deles hoje, no momento estou empacada na exportação do xml e csv.
vou postar meu codigo, talvez te ajude, abstraia algumas partes pois se referem a interação com jquery.

<display:table name="${tarefas}" id="tarefa" pagesize="3" export="true" sort="list" requestURI="" class="lista" > <display:column property="id" title="ID" sortable="true" href="mostraTarefa?id=method" paramId="id" paramProperty="id" /> <display:column property="descricao" title="Descrição" class="descricaoTd" /> <display:column title="Finalizado?" sortable="true" class="tarefa_${tarefa.id}"> <c:if test="${tarefa.finalizado == 0}"> <a href="#" onclick="finalizaTarefa(${tarefa.id})"><img src="resources/images/mais.png" /></a> </c:if> <c:if test="${tarefa.finalizado == 1}"> <img src="resources/images/ok-azul.png" /> </c:if> </display:column> <display:column title="Data de Finalização" sortable="true" class="tarefa_data_${tarefa.id}"> <fmt:formatDate value="${tarefa.dataFinalizacao.time}" pattern="dd/MM/yyyy" /> </display:column> <display:column title="Editar" > <a href="mostraTarefa?id=${tarefa.id}"><img src="resources/images/editar.png" /></a> </display:column> <display:column title="Excluir"> <a href="#" onclick="removeTarefa(${tarefa.id})"><img src="resources/images/remover.png" /></a> </display:column> <display:setProperty name="export.excel.filename" value="tarefas.xls" /> <display:setProperty name="export.csv.filename" value="tarefas.csv" /> <display:setProperty name="export.pdf.filename" value="tarefas.pdf" /> <display:setProperty name="export.pdf" value="true" /> <display:setProperty name="export.xml" value="false" /> </display:table>

Olá andreacerqueira,

Tira uma dúvida por favor.
O atributo class=“lista” é referência do que?
E o class das colunas?

Grato

A

Oi laercio, isso é só o css da tabela.
Olha:

table.lista { width:940px; margin:10px auto; } table.lista thead tr { background:#f2f2f2; } table.lista thead tr th { padding:5px; text-align:center; border-radius:5px; border-width:0; border-style:solid; } table.lista tbody tr td { padding:2px; text-align:center; border-radius:5px; border-width:0; border-style:solid; } td.left { text-align:left !important; }

P

Oi andreia,
vi que voce esta tendo dificuldades com a exportação.
certa vez li que seria necessario utilizar uns filtros do proprio displaytag, vc esta usando eles?

Ainda não cheguei na parte de exportação mas começareia estudar isso, assim um pode ajudar o outro, ok ?

Talvez algum de voce saiba, ate criei um topico para isso.
Seguinte eu tenho uma pagina na qual quero que a displaytag vá atualizando de acordo com o texto digitado em um textbox. eu consigo chamar uma action, preenche a List
mas não consigo fazer a displaytag atualizar, alguem sabe como fazer isso?

A

Sim, mas o projeto tá parado.
Vou começar a fazrr projeto da faculdade e devo cair nesse problema novamente dai eu te falo se conseguir.
Isso que vc quer é mais avançado :slight_smile:
É via jquery? É só na parte de visualização ta table iu vc quer registrar no banco?
Nem consegui penssr em nada, to perguntando por perguntar mesmo :slight_smile:

P

O que eu quero é um refresh automatico quando digitar um texto qualquer

seguinte

eu tenho um input do tipo text onde eu capturo o evento onkeyup e chamo uma função. nessa função eu uso o metodo ajax do jquery, chamo a action e tal, até ai tudo bem, coloquei umas msgs de debug e vi que chama direitinho a action e preenche meu List com os dados que estão no banco.

a minha dificuldade é , como fazer para “avisar” para a displaytag para ela recarregar sem ter que recarregar a pagina toda

A

Isso vc vai ter que fazer com jquery mesmo, adicionar um

na table.
Mas seria só visual, salvar os dados é outra coisa.
Nesse projeto mesmo da apostila 21 eles mostram um exemplo de como tirar uma linha da table, quando ativar o eventl on click, remover é mais facil, pra criar vc tem que procurar no google os comandos certimhos.
P

entendi, mas assim, eu quero só exibir mesmo, mas a exibição é toda feito pelo displaytag, eu nao manipulo a criação de

, etc, quem faz isso pra mim é o displaytag
A

Mas vc não vai fazer isso via html, tipo o cliente ta na pagina e vai digitar um texto na combo?
Nesse momento o display tag já virou table html, e é isso que vc vai ter que alterar.

P

Sim eu sei, mas para fazer isso eu terei que retornar html da minha action, ao invez da List.

A

Eu juro que tentei entender :slight_smile:

L

andreacerqueira.

Muito Obrigado funcionou certinho, eu não estava conseguindo referenciar os css com o displaytag

A

Legal laercio :slight_smile:

Criado 12 de maio de 2012
Ultima resposta 22 de jun. de 2012
Respostas 15
Participantes 4