Ignore the o'reilly comment, I pulled it out of some code I had written and 
forgot to strip this comment out.

-----Original Message-----
From: news [mailto:[EMAIL PROTECTED] On Behalf Of BoD
Sent: Wednesday, March 29, 2006 11:15 AM
To: [email protected]
Subject: Re: Expression evaluation inside a template?

Thank you for your answer.

I'm not sure I was completely clear so I'll give a more precise example 
of what I'm trying to do.

Let's say I have a tool that has a method createObject().
This method returns an object that has a getProp() method returning 
"hello".
The tool also has a method getExpression() returning the string 
"$obj.getProp()".

I'm trying to make a velocimacro that given this:

#set ($obj = $myTool.createObject())
#set ($expr = $myTool.getExpression())
#myMacro($expr)

Would generate this:

hello


So I would need something like eval($expr) that would evaluate the 
content of $expr which is $obj.getProp(). Obj being declared before it 
would call the method and return "hello".

I have no idea on how to create such a macro or if it is possible.

Thank you very much for your help.

BoD



Tony Oslund a écrit :
> If you read the Velocity docs you will find that it encourages you to
> access methods on your objects rather than trying to access a property
> directly.
> 
> Try doing $x.getValue(), or $y.doSomething() rather than attempting to
> do x.myalue.
> 
> Along the same lines, if you are tempted to use arrays, use an ArrayList
> with Velocity instead.
> 
> It is possible to access a method on an object within a Velocity
> template that in turn returns the contents of another velocity template,
> and so on and so on.  I currently use this to handle language
> translation, managed content, and also reusable sections of web pages.
> 
> If you are truly looking for expression evaluation.  There is an open
> source java library called beanshell.  It allows you to eval a java
> expression.  I have used it behind the scenes to perform Boolean
> evaluation of string expressions like {X} or {Y} and not {Z}, etc.  It
> works very well.
> 
> -----Original Message-----
> From: news [mailto:[EMAIL PROTECTED] On Behalf Of BoD
> Sent: Wednesday, March 29, 2006 8:56 AM
> To: [email protected]
> Subject: Expression evaluation inside a template?
> 
> Hi!
> 
> In a template, is there a way to evaluate a Velocity expression inside a
> 
> variable ?
> For example, let's say I have set in a Java screen a variable "expr" 
> with the value "$myObj.prop" in the context.
> 
> Now I'd like to evaluate the expression represented by $expr when I'm in
> 
> the template. Is there any way to do that, something like eval($expr)?
> 
> Thank you very much for your help!
> 
> BoD
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to