Dificuldades com DisplayTag

6 respostas
B

Boa tarde moçada,
já pesquisei o GUJ inteiro sobre como utilizar o DisplayTag. Até os exemplos eu tentei aproveitar para minha aplicação. SEM SUCESSO!
Estamos usando WEBWORK 2.2

Dúvidas:

1- ACTION

public String execute() {

try {

GenericDAO dao = new GenericDAO();

List list = dao.findAll(Ponto.class);

return SUCESS;

}

> o execute  certo por acaso???

2- JSP
<%@ taglib uri=“http://displaytag.sf.net” prefix=“display” %>
<display:table name="${list}" >
<display:column property=“codPonto” title=“Código” />
<display:column property=“descricao” title=“Descrição” />
<display:column property=“ativo” title=“Situação” />
</display:table>
–> o jsp me dá a seguinte mensagem : “Nothing found to display.”

O QUE TEM DE ERRADO??? HELP!!!

Obrigado a todos.
Bruno

6 Respostas

zirocool

Hum… ponha na request a tua lista, ou sei lá onde, nao sei como o webwork faz isso, e muda de ${objeto}, para simplesmente “lista”, onde “lista”, será o nome do atributo que tu vai setar na action…

M

o seu list está dentro do seu método execute, gere um SET/GET para ele, que provavelmente funciona.

I

coloque a lista como uma variável do request depois que terminares de recuperar os dados:

//...
List list = dao.findAll(Ponto.class); 
req.setAttribute("list", list);
//...

Acho que deve funcionar, T+

J

Fala ae, Bruno.

Bom, vamos por parte. Se você não tirar a sua list do EXECUTE não irá funcionar, pois quando o WW executa este método, não se preenche a list. Provavelmente, é por este motivo que está apresentando esta mensagem. Lembre-se de que esta mensagem pode ser parametrizada.

Depois, você não precisa utilizar ${list} na sua página, pois você não está fazendo referência local. Se você for fazer referência a um atributo do seu bean, você deverá utilizar só list.

Agora, você poderá fazer o seguinte, acho que fica mais legal :
Na sua action do WW você instancia sua lista de objetos e coloca na sessão; Na sua página, pegue da sessão a lista. Assim, você poderá utilizar a mesma configuração para o restante do projeto.

Fui…
T+ (IMA´s boy)

B

Primeiro obrigado a todos! Consegui compreender como funcionam as chamadas e as sessões. Fiz as adaptações e ficou assim:

— ACTION

private List lista = new ArrayList();

public String execute(HttpServletRequest request) {

try {

GenericDAO dao = new GenericDAO();

dao.findAll(Ponto.class);

request.setAttribute(lista, lista);

}

 get e set de lista;

— JSP

<%@ taglib uri=“http://displaytag.sf.net” prefix=“display” %>
<display:table name=“lista” >
<display:column property=“codPonto” title=“Código” />
<display:column property=“descricao” title=“Descrição” />
<display:column property=“ativo” title=“Situação” />
</display:table>

Mesmo assim a mensagem persiste em me atormentar!
“Nothing found to display”

Onde diabos eu estou errando heim!?

Brigadão gente!
Grande abraço.
Bruno

leonardom

Bruno Câmara:
Primeiro obrigado a todos! Consegui compreender como funcionam as chamadas e as sessões. Fiz as adaptações e ficou assim:

— ACTION

private List lista = new ArrayList();

public String execute(HttpServletRequest request) {

try {

GenericDAO dao = new GenericDAO();

dao.findAll(Ponto.class);

request.setAttribute(lista, lista);

}

 get e set de lista;

— JSP

<%@ taglib uri=“http://displaytag.sf.net” prefix=“display” %>
<display:table name=“lista” >
<display:column property=“codPonto” title=“Código” />
<display:column property=“descricao” title=“Descrição” />
<display:column property=“ativo” title=“Situação” />
</display:table>

Mesmo assim a mensagem persiste em me atormentar!
“Nothing found to display”

Onde diabos eu estou errando heim!?

Brigadão gente!
Grande abraço.
Bruno

Bruno, onde você está jogando os valores para sua lista? Outra coisa se você está usando WW pelo amor de Deus tira esse HttpServletRequest request dai!

Tenta fazer da seguinte maneira:

...

private List lista = new ArrayList();

public List getLista() {
    return lista;
}

public String execute() throws Exception {
    GenericDAO dao = new GenericDAO();
    this.lista = dao.findAll(Ponto.class);
    return SUCCESS;
}

....

Obs: Estou supondo que seu metódo findAll(…) da classe DAO retorne um objeto que implemente List. Ok?

Criado 31 de julho de 2006
Ultima resposta 1 de ago. de 2006
Respostas 6
Participantes 6