TagLib. Passar java.util.List como parametro [RESOLVIDO]

4 respostas
Jair_Rillo_Junior

Ola pessoal,

estou mexendo com taglib no momento e estou com uma dúvida relacionada aos parametros que irei passar pra ela. Nunca tinha mexido com isso e consegui fazer algumas coisas, como por exemplo passar uma String como parametro e depois a taglib tratar isso.
Mas o que eu preciso no momento é o seguinte.
Eu tenho um objeto java.util.List que está no request da pagina ou na Session (isso tanto faz), quero passar esse objeto e a taglib capturar essa List.
Dentro da taglib ja criei o objeto List e fiz seus métodos get e set.
O problema está na hora de passar esse parametro, por exemplo

<%
	java.util.List lista = new java.util.ArrayList();
%>
<html>
...
<menu:menuTag teste="lista" />

Ele reclama que o “lista” é uma String, e não pode passar uma String para um método que espera receber um List.
Alguem poderia me ajudar??

Obrigado

4 Respostas

Z

Isso é um chute. :mrgreen:

<menu:menuTag teste="${lista}" />
B

Se não me engano, no tld, onde vc declara as tags e os parâmetros que ela recebe tem um atributo tipo param-type, aí vc coloca java.util.List.

O Default é String e por isso na sua não deve ter… olhe um tld de algum framework ou procure na net.

Abraço.

Jair_Rillo_Junior

Problema resolvido.

Seguinte. no atributo do tld, tem que por a seguinte tag para TRUE
<rtexprvalue>true</rtexprvalue>

e na chamada, deve-se usar por exemplo

&lt;menu:menuTag teste="&lt;%= lista %&gt;" /&gt;

Assim funcionou legal.

Obrigado galera

saoj

A efeito de curiosidade, veja se funciona com Expression Langauge tb, que é mais limpo.

Tua lista está no request, então:

&lt;menu:menuTag teste="${lista}" /&gt;

Tente isso com:

&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&gt;
&lt;%@ page isELIgnored="false" %&gt;
Criado 7 de julho de 2005
Ultima resposta 7 de jul. de 2005
Respostas 4
Participantes 4