Display tag,ordenação

Olá pessoal,estou precisando de uma ajuda.No meu sistema já configurei tudo que é necessário pra usar displaytag,já fiz uns testes e está tdo ok.
Agora eu estou precisando pegar uma coleção de dados do banco pra jogar na grid que ordena,porém não estou conseguindo pegar os valores.
Quando eu pego a propriedade em

<display:table name="l" defaultsort="1" defaultorder="descending">
<display:column property="id" title="ID" sortable="true" headerClass="sortable" />

diz que a propriedade id é desconhecida.

Alguem sabe o que pode ser?Como pegar esse id do meu bean?

DaniloAl. , mostre como vc esta passando sua lista para o display:table…

pelo request?pela sessao? como?
posta ai o codigo da sua action que faz isso…
depois agente V pq nao ta mostrando

esse é o metodo que alimenta minha grid de pesquisa

	public ActionForward select(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setHeader("Cache-Control", "no-cache");
		response.setHeader("Pragma", "no-cache");
		response.setDateHeader("Expires", -1);

		// Proxy responsável por gerenciar o controle de acesso ao sistema.
		ActionForward acesso = ControleAcesso.getControleContexto(request,
				response, mapping).acesso("teste", "PRINCIPAL", "APRESENTAR");
		if (acesso != null)
			return acesso;

		TipoAcao controller = new TipoAcao();
		Collection resultado = null;		
		TipoAcaoForm frm = (TipoAcaoForm) form;
		TipoAcaoForm frmAux = null;

		// guardando estado entre pesquisas, alterações e inserções dos dados
		if (request.getParameter("do") != null
				&& request.getParameter("do").equals("select")) {

			frmAux = new TipoAcaoForm();
			// aloca form de pesquisa
			frmAux.setNome(new String(frm.getNome()));
			// guarda em sessao o form de pesquisa
			ControllSession
					.setSessionFormPesquisa(request.getSession(), frmAux);

		} else if (ControllSession.getSessionFormPesquisa(request.getSession()) != null
				&& ControllSession.getSessionFormPesquisa(request.getSession()) instanceof TipoAcaoForm) {
			// obtem o form de pesquisa
			frmAux = (TipoAcaoForm) ControllSession
					.getSessionFormPesquisa(request.getSession());
			// atribui os dados do form de pesquisa ao ActionForm
			frm.setNome(frmAux.getNome());
		}

		try {
			resultado = controller.buscar(frmAux.getNome(),ControllSession.getCDE(request));
		} catch (AmbientExeception e) {
			Erro.gravar(e, request);
			return mapping.findForward("erro");
		}
		List resultado2 = (List) resultado;
		request.setAttribute("resultado", resultado);  //eu quero o resultado dessa coleção na minha grid,pra eu ordenar pelo atributo 'nome'
	//	request.setAttribute("resultado2", resultado2);
		return mapping.findForward("pesquisa");

	}

esse é o form correspondente à classe que tem o metodo acima

/**
 * 


import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;


public class TipoAcaoForm extends ActionForm {
	private Short id;
	private String nome;
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public Short getId() {
		return id;
	}
	public void setId(Short id) {
		this.id = id;
	}
	
	public void resert(ActionMapping mapping,HttpServletRequest request) {
		this.id = null;
		this.nome = null;
	}
}

No atributo name da sua display:table vc deve colocar o nome da sua coleção que vc jogou na sessão, no seu caso ficaria assim:

<display:table name="resultado" defaultsort="1" defaultorder="descending"> 

[]'s

1 curtida

[quote=lcegatti]No atributo name da sua display:table vc deve colocar o nome da sua coleção que vc jogou na sessão, no seu caso ficaria assim:

<display:table name="resultado" defaultsort="1" defaultorder="descending"> 

[]'s[/quote]

é isso que o Gorilaz falou…
pq aqui vc seta o atributo com o nome “resultado” e la na pagina vc ta tentando pegar “1”
request.setAttribute(“resultado”, resultado);

:wink:

1 curtida

sim…eu irei testar,agora e quanto ao cabeçalho.Atualmente eu tenho o cabeçalho descrição,no displaytag temos que
fazer o seguitne pra ordenar pelo cabeçalho :

    <display:column property="nomePropriedade" title="ID" sortable="true" headerClass="sortable" />

quero fazer o mesmo na minha grid,no cabeçalho descricão quero que ele pegue o atributo ‘nome’ que equivale a descrição,porém quando eu faço

    <display:column property="nome" title="nome" sortable="true" headerClass="sortable" />

dá erro,dizendo q o atributo nome é desconhecido.Alguma ideia?

lembre-se que esses atributos sao das suas VO´s ou Beans, como quiser chamar…entao na sua classe lá tem que ter um atributo chamado nome…

Não está funcionando…minha jsp está assim



<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<jsp:include flush="true" page="/atributos.jsp"></jsp:include>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>   

<jsp:include flush="true" page="/atributos.jsp"></jsp:include>


<jsp:directive.page import="java.util.ArrayList"/>
<jsp:directive.page import="java.util.List"/>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title></title>
</head>
<body>
<div id="content_form">	
		<html:form action="/tabelasapoio/tipoacao.mf" onsubmit="return ajaxRunForm(this,'conteudo')">
			<fieldset>
				<legend>Pesquisar</legend>
				<jsp:include flush="true" page="/MGeral/boxMsgs.jsp"></jsp:include>
				<html:hidden property="id" styleClass="none" />
				<html:hidden property="do" styleClass="none" value="select" styleId="do" />
				<div>
				<label>Descrição:</label>
				<html:text styleClass="inputBig" maxlength="50" property="nome" />
				</div>
				<div>
				<button value="Cadastrar" type="submit">Pesquisar</button>
				<button  class="botaoLado" type="button" onclick="relatorio();">Relatorio</button> 
				</div>
			</fieldset>
		</html:form>
	</div>
	
	
	
	
  <jsp:scriptlet> 

</jsp:scriptlet>
	
	
<display:table name="resultado">
<display:column property="nome" title="nome" sortable="true" headerClass="sortable" />  

</display:table>
	

oque que nao esta funcionando?
olha essa jsp

<html:form action="Lisgrfolha">

	<table width="100%" style="vertical-aling: top">
		<tr>
			<td><jsp:include page="../common/toolbar.jsp" flush="true" />

			<table align="center" style="vertical-aling: top">
				<tr>
					<td style="vertical-aling: top">
					<table class=table_entrada_dados cellspacing=2 cellpadding=2
						border="0" style="vertical-aling: top">
						<tr>
							<td colspan=3 class=titulo_tab>Integração - Listar - Lisgrfolha
							- Lista Grupos de Folha de Pagamento</td>
						<tr>
							<td class="label">Descrição</td>
							<td><html:text property="descricaoGrupo"
								styleClass="entrada_dados" maxlength="70" size="70" /></td>
						</tr>
						<tr>
							<td></td>
							<display:table defaultsort="1" defaultorder="ascending" name="listaGrupos" id="item" style="width: 100%; "
								export="false" requestURI="" pagesize="15">
								<display:column class="defaultTdSemCor" headerClass="label"
									style="width: 60px;">
									<center><a
										href="javascript:showPage('${item.codigoGrupo}')">&nbsp;&nbsp;<img
										alt="Alterar" src="img/icone_detalhar.gif" border="0" /></a></center>
								</display:column>
								<display:column class="defaultTdSemCor" headerClass="label"
									media="html" style="width: 60px;">
									<center><a style=""
										href="javascript:if(confirm('Deseja realmente excluir este registro?')){exclui('${item_rowNum}')}">
									<img alt="Excluir" name="btnExcluirEvento"
										src="img/icone_excluir.gif" border="0" /></a></center>
								</display:column>
								<display:column property="codigoGrupo" sortable="true" style="text-align:center"
									title="Código do Grupo" class="defaultTdSemCor"
									headerClass="sortable" />
								<display:column property="descricaoGrupo" sortable="true"
									style="text-align:left" title="Descrição do Grupo"
									class="defaultTdSemCor" headerClass="sortable" />
							</display:table>
						</tr>
					</table>
					</td>
				</tr>
			</table>
			</td>
		</tr>
	</table>

</html:form>

da uma olhada ai…e diga-nos qual erro esta dando?

aewwwww. purra…foi : D…curiosidade demais as vezes atrapalha…agora a ficha caiu que realmente não precisa fzer nada alem de passar o atributo,achei simples demais pra ser verdade : D…funcionou certo,agora so está com um problema…perdendo o css da aplicação e não está aparecendo a setinha de ordenação ao lado do cabeçalho.

Obrigado pela paciência meu amigo…obrigado mesmo pela dedicação em ajudar.

flw…