DisplayTag

7 respostas
D
tenho o codigo abaixo
<%@ taglib uri="/WEB-INF/displaytag-11.tld" prefix="display" %>
<%@ page contentType="text/html" language="java" 
   import="java.sql.*, java.util.*, org.apache.commons.beanutils.RowSetDynaClass"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<jsp:useBean id="con" class="conexao.Conexao"/> 


<html>
<body>
<table border="0" width="100%" height="24" cellpadding="0" cellspacing="2">
<tr>
   <td>GRID:    
   <%  
      try { 	      
            con.busca_prog();
	        
	        	     
	       ResultSet temp = con.getResultado();
	        
			
		RowSetDynaClass resultSet = new RowSetDynaClass(temp, false);
            request.setAttribute("results", resultSet);
			
			         
     
      } catch (Exception e) { 
         e.printStackTrace(); 
      }
	  	  
	  %>     
   </td>
  </tr>
  <tr>
     <td>
         <display:table name="requestScope.results.rows">   
         </display:table>
     </td>
  </tr>
</table>
</body>
</html>

e está me aparecendo os dados do select em forma de tabela - td blz
mas li sobre essa displaytag e pro meu caso eu teria q fazer umas verificações antes de atribuir o valor pra coluna.
li que ao fazer um new testlist ele chama um class e esse class chama um listobject. penso eu que devo fazer a mesma coisa.
criar uma classe teste e depois uma classe listobject, onde nesta faço as verificações necessarias antes de atribuir o valor pra coluna.
por exemplo .... determinado valor exemplo 5 deve aparecer na coluna 3.
isso ocorre na forma de GetXXXXX( get e nome da coluna), isso informada no setProperty neh??

ou posso atribuir o valor da pra uma lista e depois atribuir essa lista pro displaytag, porem li q naum eh recomendado, o melhor eh usar o getXXX.

uma duvida, pelo q entendi ele cria 2 arrays um pras linhas e outro pras colunas, eh isso mesmo??

alguem q usou essa displaytag, poderia me ajudar.
to meio q tateando as formas d usar ela, e qual seria a certa q responderia as minhas necessidades.
vlw, daniel baldo.

7 Respostas

D

Alguem poderia me ajudar a entender o modo de funcionamento dessa DisplayTAG??

ESTOU PRECISANDO URGENTEMENTE SABER COMO FUNCIONA PRA EU SABER SE ELA RESPONDE AS MINHAS NECESSIDADES.
VLW DANIEL.

cv1

Voce pode ser mais claro com a sua duvida? Nao tou conseguindo entender direito o que vc quer fazer… :?

D

eu vi um exemplo onde tem dois beans.

no JSP o exemplo tinha o comando new testList
e esse testlist tem dentro dele um new listObject.
poderia eu usar isso tb? quero colocar tal valor em tal coluna eu teria como fazer isso? usando esse raciocínio?
passar atravez d bean os valores pro grid.

segue abaixo os 2 bean;

TestList
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   TestList.java

package org.displaytag.sample;

import java.util.ArrayList;
import java.util.Random;

// Referenced classes of package org.displaytag.sample:
//            ListObject

public class TestList extends ArrayList
{

    public TestList()
    {
        for(int j = 0; j < 60; j++)
            add(new ListObject());

    }

    public TestList(int size, boolean duplicates)
    {
        if(duplicates)
        {
            for(int j = 0; j < size; j++)
            {
                ListObject object1 = new ListObject();
                ListObject object2 = new ListObject();
                ListObject object3 = new ListObject();
                int random = (new Random()).nextInt(3);
                for(int k = 0; k <= random; k++)
                    add(object1);

                object1.setId(object2.getId());
                random = (new Random()).nextInt(3);
                for(int k = 0; k <= random; k++)
                {
                    add(object1);
                    add(object2);
                }

                object1.setEmail(object3.getEmail());
                random = (new Random()).nextInt(3);
                for(int k = 0; k <= random; k++)
                    add(object1);

            }

        } else
        {
            for(int j = 0; j < size; j++)
                add(new ListObject());

        }
    }

    public ListObject getItem(int index)
    {
        return (ListObject)super.get(index);
    }

    private static final long serialVersionUID = 0xd1597a17a6L;
}
e o ListObject
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   ListObject.java

package org.displaytag.sample;

import java.util.*;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

// Referenced classes of package org.displaytag.sample:
//            RandomSampleUtil

public class ListObject
{
    public static class SubListItem
    {

        public String getName()
        {
            return itemName;
        }

        public String getEmail()
        {
            return itemEmail;
        }

        public String toString()
        {
            return (new ToStringBuilder(this, ToStringStyle.SIMPLE_STYLE)).append("name", itemName).append("email", itemEmail).toString();
        }

        private String itemName;
        private String itemEmail;

        public SubListItem()
        {
            itemName = RandomSampleUtil.getRandomWord();
            itemEmail = RandomSampleUtil.getRandomEmail();
        }
    }


    public ListObject()
    {
        id = -1;
        id = random.nextInt(0x1869e) + 1;
        money = (random.nextInt(0xf423e) + 1) / 100;
        String firstName = RandomSampleUtil.getRandomWord();
        String lastName = RandomSampleUtil.getRandomWord();
        name = StringUtils.capitalize(firstName) + ' ' + StringUtils.capitalize(lastName);
        email = firstName + '-' + lastName + '@' + RandomSampleUtil.getRandomWord() + ".com";
        date = RandomSampleUtil.getRandomDate();
        description = RandomSampleUtil.getRandomWord() + ' ' + RandomSampleUtil.getRandomWord() + "...";
        longDescription = RandomSampleUtil.getRandomSentence(10);
        status = RandomSampleUtil.getRandomWord().toUpperCase();
        subList = new ArrayList();
        subList.add(new SubListItem());
        subList.add(new SubListItem());
        subList.add(new SubListItem());
        url = "http://www." + lastName + ".org/";
    }

    public int getId()
    {
        return id;
    }

    public void setId(int value)
    {
        id = value;
    }

    public String getName()
    {
        return name;
    }

    public String getEmail()
    {
        return email;
    }

    public void setEmail(String value)
    {
        email = value;
    }

    public Date getDate()
    {
        return (Date)date.clone();
    }

    public double getMoney()
    {
        return money;
    }

    public String getDescription()
    {
        return description;
    }

    public String getLongDescription()
    {
        return longDescription;
    }

    public String getStatus()
    {
        return status;
    }

    public String getUrl()
    {
        return url;
    }

    public String getNullValue()
    {
        return null;
    }

    public String toString()
    {
        return "ListObject(" + id + ")";
    }

    public String toDetailedString()
    {
        return "ID:          " + id + "\n" + "Name:        " + name + "\n" + "Email:       " + email + "\n" + "Date:        " + date + "\n" + "Money:       " + money + "\n" + "Description: " + description + "\n" + "Status:      " + status + "\n" + "URL:         " + url + "\n";
    }

    public List getSubList()
    {
        return subList;
    }

    private static Random random = new Random();
    private int id;
    private String name;
    private String email;
    private Date date;
    private double money;
    private String description;
    private String longDescription;
    private String status;
    private String url;
    private List subList;

}
guile

Cara,

Se eu entendi sua pergunta, você quer pegar os valores de um objeto (ou objetos) que estão dentro dos objetos que estão na lista que você entrega a DisplayTag para que ela mostre (UFA!)… é isso??

Se é assim, você pode fazer algo parecido com isso:

<display:table name="suaList" id="currentObj" width="100%" pagesize="10">

Isto te devolve o objeto corrente em “currentObj”… aí, vc pode manipulá-lo como quiser.

Mas vai uma dica aí qdo for postar dúvidas: menos código e mais explicação :wink:

Senão a galera não entende… :thumbup:

Abraços,
Guile

D

eu to apanhando pra fazer uma bean ond esta faça um select e jogue os dados pro array e este array por sua vez passe os dados pro grid.
os dados passam do array pro grid atravez do property=“email” entao a display faz um get da minha coluna, isso ou estou errado??

bah ficaria mto contente caso alguem pudesse me ajudar.
vlw daniel. :?

D

to precisando d uma ajuda urgente!!!
naum to conseguindo criar uma classe com um array e fazer com q este passe os dados pra displaytag.

HELP ME!!!

kuchma

dbaldo:
to precisando d uma ajuda urgente!!!
naum to conseguindo criar uma classe com um array e fazer com q este passe os dados pra displaytag.

HELP ME!!!

Na boa: ficar postando a cada dois minutos enchendo o saco do pessoal nao vai resultar em mais respostas ou respostas mais rapidas. Muito pelo contrario. Eu quando vejo esse tipo de post dou um CTRL+W direto. Todos respondem quando podem no seu tempo livre. Se ninguem respondeu ainda tua duvida, aguarde ou pague uma consultoria. Nao leve a mal - eh soh um toque.

Marcio Kuchma

Criado 3 de junho de 2005
Ultima resposta 6 de jun. de 2005
Respostas 7
Participantes 4