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);

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}')"> <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.