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]
