[velocity]Como chamar métodos?

18 respostas
_fs

Olá, boa tarde.

Seguinte, estou usando ww2 + velocity e, apesar de ter seguido os exemplos da página do jakarta à risca, a coisa não funciona.

Exemplo:

public String getMinhaString( int i )
{
    return MeuArraydeStrings[ i ]
}

E na página .vm

$string.getMinhaString( 1 )

ou até quando faço só com strings, como todos os exemplos da página, fazendo as transformações necessárias na classe:

$string.getMinhaString( "1" )

O que há de errado? Valeu!

18 Respostas

smota

pra chamar métodos de sua action ou de qq outra coisa que tenha colocado na pilha (stack - lembre-se que a action e/ou model eh colocada automaticamente na pilha pelo framework) faça:

$stack.findValue("chamameumetodoportfavor(oparametroquepodeseratehumavariavel)")

Sempre que usar $stack.findValue() estará passando a bola pro OGNL, entonces tudo que o OGNL faz é possível a partir dai.

_fs

Cara, não rolou … olha a situação:

String[] inputs = { "1", "2", "3" };

public String getInputs( int i )
{
    return inputs[ i ];
}

E na .vm (onde os outros getters and setters funcionam belezinha)

<p>... deus: $stack.findValue("getInputs( 1 )")</p>

Valeu pelo reply o/

_fs

Outra dúvida seria como enviar como parametros para um método setXXX um array de valores.

Sugestões?

smota

hummm eu jurava que funcionaria assim … mas faz um teste ai:

$stack.findValue("getInputs(indice)")

onde indice é uma propriedade do bean …

_fs

Não rola mesmo cara :frowning:

Cabei de ler um texto sobre OGNL, mas não surgiu nada …

Keep walking \o/

cv1

Estranhissima essa thread. Tudo que eu jurei que funcionava nao deu certo :smiley:

Mas, já que é pra fazer o Lipe de besta testando coisas à toa, hehehe :D… testa mais essa aqui, Lipe:

$stack.findValue("inputs[1]")

Dica: ponha um breakpoint no metodo getInputs, pra ver se ele ao menos esta sendo chamado… já é uma grande ajuda :wink:

_fs

Valeu cv, vou testar isso amanhã \o/

ass.: Lipe Grandmaster Debugger, Apprentice Miscelaneous

_fs

Bem … não funcionou, e o método nem é chamado :expressionless:

Bizarro … o que pode ser isso? Pode estar relacionado com o meu problema no outro tópico?

_fs

E olha que bacana, do nada surgiram arquivos vti_cnf DOS MEUS JARS … e os meus .properties sumiram de novo (eu tinha backup dessa vez)

Aparentemente o problema está nas minhas configurações.
Alguém já passou por algo semelhante a este terror?

ps.: tomcat 5.0.14, eclipe 2.0, UltraEdit32, IE6, WW1.4

smota

Aaaaaaaaaaa bão, pq não disse antes que era o WW1.4 ?!?

Somente a versão 2 usa OGNL … a 1.4 tem uma linguagem própria chamada EL, a documentação dela está aqui!Abra o source pq os exemplos de código não aparecem no Wiki - Oh como eu odeio esse Wiki! :shock:
Como você pode ver não é com findValue()

Ah … pq usar o 1.4? Aproveita que tá começando e já usa o WW2 … o final tá quetinho pra sair … mas pega a versão do CVS que está inifinitamente melhor do que o Beta2.

Ops, sobre arquivos aparecendo e sumindo eu não sei de nada :roll:

smota

“LIPE”:
Seguinte, estou usando ww2 + velocity e, apesar de ter seguido os exemplos da página do jakarta à risca, a coisa não funciona.

Aliás tu nos enganou … :2gunfire: WW2 = WebWork [size=“18”][color=“red”]2[/color][/size] :wink:

_fs

Meu deus! Desculpem-me :expressionless:

Bem, vou baixá-lo \o/

_fs

Opa, desculpa continuar a encher o saco de vocês, mas … há alguma maneira de fazer isto que preciso com o ww1.4 mesmo?

Valeu!

cv1

Eu nao lembro mais se o objeto action ja vem de brinde no contexto do Velocity, ou se vc tem que adicionar ele…

Tenta fazer um template que imprime o valor de $action - se vier alguma coisa, eh soh chamar o teu metodo… senao, poe um getAction() { return this ;} na tua action (deeeeus, q coisa horroroosaaaa :D) e dai eh soh chamar $action.foo() :wink:

_fs

hehe vou testar cv, obrigado.

Quanto ao webwork2 … não estável o bastante para aplicar no que estou fazendo (e além do mais eu gosto demais do doValidation :smiley: )

_fs

Meu deus … funcionou.

fazendo a contagem de débito de cervejas para cv
\o/

cv1

KA-CHING! :smiley:

_fs

hehe já estou a par de seus desejos por este artefato de cevada (ou esta é de trigo)?

Mas agora quero ver: já testei 2457x, mas ao chamar métodos pelo $action.Meumetodobacana, o método doExecute da Action simplesmente não é chamado hehe e de quebra ele boicota as outras chamadas da minha página que deveriam chamar o doExecute automaticamente.

Alguém sabe o porque disso?

Criado 26 de janeiro de 2004
Ultima resposta 27 de jan. de 2004
Respostas 18
Participantes 3