You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@velocity.apache.org by Sergey Maslov <th...@gmail.com> on 2010/06/03 10:57:38 UTC

Velocity template dynamic reference value modification

I need to replace references (properties and methods) in the Velocity
templates to some another values during template rendering.
For example, from the template below:
___
I have $some text $daisy
#foreach ($someElement in $someCollection)
   #$someElement.doSomething()
#end
___

I need to get such text:
___
I have lalala1 text lalala1
lalala2
lalala2
lalala2
___

Besides, the reason is I don`t know the names of references and the
amount of them beforehand. Well, technically, indeed I can open
templates and manually look through, but I want to escape this way.
First of all, I tried to get references names from the template,
working with implementation of ReferenceInsertionEventHandler, but the
problem was in directives.
For example, with foreach I had exception "Could not determine type of
iterator in #foreach loop"
I looked through the velocity source code, I can change it as I need,
but it will kill future project maintainability.
So the question is:
is there any way to get all references names (properties and methods)
from template and to change the values of them during rendering?

Best regards,
Sergey Maslov

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@velocity.apache.org
For additional commands, e-mail: user-help@velocity.apache.org