TagLib - Como passar parâmetros dinâmicamente a um atributo da tag?  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
baladao
Debugger
[Avatar]

Membro desde: 21/06/2006 15:56:22
Mensagens: 51
Offline

Olá pessoal,

Estou trabalhando num framework Ajax próprio, voltado a interfaces WEB que imitam sistemas tradicionais, IDE's Delphi e VB.

Agora falta a adaptação dos códigos HTML + JavaScript para TagLibs, no entando é a primeira vez que crio Tags no Java.

Resumindo estou com um problema bem chato, não consigo passar um parâmetro dinâmico para um atributo qualquer de uma tag.

Por exemplo:

O código <%=mybean.getCliId()%> não é interpretado por algum motivo!

O desenvolvimento de um framework é muito trabalhoso, se tiver alguém interessado em participar... encaminho os fontes.

Sem mais...
[]'s

Juliano V. Baladão
Sistemas de Informação
[WWW]
zirocool
JavaEvangelist
[Avatar]

Membro desde: 06/11/2004 17:00:05
Mensagens: 472
Localização: Candelária - RS
Offline

ao invés de <% ... bla bla bla %>

Tente {objeto.propriedade}

abraço...

"Não decore passos, aprenda o caminho." (Klaus Vianna)
http://twitter.com/misaelbr
[WWW] [ICQ]
zirocool
JavaEvangelist
[Avatar]

Membro desde: 06/11/2004 17:00:05
Mensagens: 472
Localização: Candelária - RS
Offline

na verdade é ${objeto.propriedade}

"Não decore passos, aprenda o caminho." (Klaus Vianna)
http://twitter.com/misaelbr
[WWW] [ICQ]
baladao
Debugger
[Avatar]

Membro desde: 21/06/2006 15:56:22
Mensagens: 51
Offline

zirocool wrote:ao invés de <% ... bla bla bla %>

Tente {objeto.propriedade}

abraço...


Usando ${mybean.getCliId()} ocorre o seguinte erro:
According to TLD or attribute directive in tag file, attribute label does not accept any expressions

Pesquisei e encontrei o seguinte:


Ainda não sei se é esse o caminho...

Juliano V. Baladão
Sistemas de Informação
[WWW]
zirocool
JavaEvangelist
[Avatar]

Membro desde: 06/11/2004 17:00:05
Mensagens: 472
Localização: Candelária - RS
Offline

nao era bem isso...
ehhehe
tenta assim oh ${mybean.clicId}

tem que ser o nome do teu atributo, nao o teu método...

com JSTL funciona assim... nao sei se tem uma implentação especial por trás pra interpertar esse ${__.___}

Mas dah uma experimentada...

"Não decore passos, aprenda o caminho." (Klaus Vianna)
http://twitter.com/misaelbr
[WWW] [ICQ]
baladao
Debugger
[Avatar]

Membro desde: 21/06/2006 15:56:22
Mensagens: 51
Offline

zirocool wrote:nao era bem isso...
ehhehe
tenta assim oh ${mybean.clicId}

tem que ser o nome do teu atributo, nao o teu método...

com JSTL funciona assim... nao sei se tem uma implentação especial por trás pra interpertar esse ${__.___}

Mas dah uma experimentada...


Não funcionou, tentei assim tabém...
<% String cliId = (String) request.getParameter("cliId"); %>
<my:tabPanel id="CliIspm" label="Clientes Ativos: ${cliId}">

Queria implementar a minha teg como o exemplo:


Juliano V. Baladão
Sistemas de Informação
[WWW]
baladao
Debugger
[Avatar]

Membro desde: 21/06/2006 15:56:22
Mensagens: 51
Offline

Olha o que encontrei:

Pergunta:

> In the .tld files, every attribute looks like this. But I can't find
> anything anywhere about the third one: rtexprvalue, and when to set it
> true and false.
>
> <attribute>
> <name>value</name>
> <required>false</required>
> <rtexprvalue>true</rtexprvalue>
> </attribute>

Resposta:

It stands for "RUN-TIME EXPRESSION VALUE"
It is describe the type of attribute for custom action tag whether
it is evaluated at run-time or not.

BTW: In the JSP 1.1 Spec note you can do this:

<mysimpleTag value="<%=scripletVariable%>"/>

Fonte: http://www.mail-archive.com/struts-user@jakarta.apache.org/msg14825.html


Mas não adiantou no meu caso...

Juliano V. Baladão
Sistemas de Informação
[WWW]
zirocool
JavaEvangelist
[Avatar]

Membro desde: 06/11/2004 17:00:05
Mensagens: 472
Localização: Candelária - RS
Offline

Mano, posta todo o teu fonte aih da tua tag pra poderem te ajudar, e coloca o teu xml tbm.

[ ]'s...

"Não decore passos, aprenda o caminho." (Klaus Vianna)
http://twitter.com/misaelbr
[WWW] [ICQ]
zirocool
JavaEvangelist
[Avatar]

Membro desde: 06/11/2004 17:00:05
Mensagens: 472
Localização: Candelária - RS
Offline

http://java.sun.com/javaee/5/docs/tutorial/doc/JSPTags4.html#wp89574

Olha isso no tutorial da sun...

"Não decore passos, aprenda o caminho." (Klaus Vianna)
http://twitter.com/misaelbr
[WWW] [ICQ]
zirocool
JavaEvangelist
[Avatar]

Membro desde: 06/11/2004 17:00:05
Mensagens: 472
Localização: Candelária - RS
Offline

http://java.sun.com/javaee/5/docs/tutorial/doc/JSPTags7.html#wp90543

Aqui, tem uma parte que explica como usar akeles atributos que eu te falei.
Ah, detalhe, esses atributos no formato ${objeto.campo}, geralmente é pego da sessao, ou da request.
Teu MyBean, tu tah enviando ele por requisição??
tu pode fazer tbm usando as diretivas jsp
<jsp useBean="..." / > e tal, e pegando no formato ${objeto.campo}, com o id da tua declaração...


tipo o exemplo acima, daih para mim exibir em uma tag qualquer, eu faria com a <c:out /> o seguinte:


"Não decore passos, aprenda o caminho." (Klaus Vianna)
http://twitter.com/misaelbr
[WWW] [ICQ]
baladao
Debugger
[Avatar]

Membro desde: 21/06/2006 15:56:22
Mensagens: 51
Offline

Resolvido o problema!

A propriedade do atributo na .tld <rtexprvalue>true</rtexprvalue> funciona sim, é que no caso da tag interna que desenvolvi faço o acúmulo de string num atributo da tag pai e ela no doEndTag imprime todo o resultado.

Preciso entender melhor como funciona esse parâmetro para corrigir a minha tag em específico.

Para um teste que fiz de uma tagPai e outras filhas que jogam o resultado no pageContext diretamente funcionou!

Juliano V. Baladão
Sistemas de Informação
[WWW]
baladao
Debugger
[Avatar]

Membro desde: 21/06/2006 15:56:22
Mensagens: 51
Offline

Esclarecendo...

Quando se define que um atributo é interpretado em RUN-TIME <rtexprvalue>true</rtexprvalue> não se pode enviar dados mistos no atributo como o abaixo:
<my:tag attr="static?var=<%=dinamic %>" />

O certo é:
<my:tag attr="<%="static?var="+ dinamic %>" />

Juliano V. Baladão
Sistemas de Informação
[WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team