Re: Using WebMacro outside of a WebApplication
Danni Miller <[email protected]> Tue, 20 Sep 2005 09:48:14 -0700 (PDT)
| Newsgroups | gmane.comp.java.webmacro.user |
|---|---|
| Message-ID | <[email protected]> |
Thanks that was exactly what I was looking for, I didnt realize I could pass directives when instantiating a StringMacro, and then retrieve the value from the context. Thanks --- Keats Kirsch <[email protected]> wrote: > I'm not clear on what your problem is. It looks > like you have the right > idea. You can evaluate a template to a stream or a > String. If you want > to set other data types using WM, you can pull them > out of the context > after evaluating the template. > > Something like: > > Context ctx = new Context(); > ctx.put("val1", 1); > ctx.put("val2", 155); > Macro macro = null; > macro = new StringMacro("#set $val = > $val1 + $val2"); > macro.evaluate( ctx); > Integer val = (Integer)ctx.get("val"); > > Hope this helps. > > Keats > > Danni Miller wrote: > > >I would like to use the expression handling of > >WebMacro outside of typical WebMacro. I have been > able > >to use a StringMacro which evalutates out properly, > >but I would also like to evalute a full expression > >such as $val + $val1 When I evaluate such an > >expression I get String substitutions. Is there any > >way to do this with WebMacro 2.0. I am not sure > what I > >should use to have this functionality, or if those > >classes are public. I have a sample below of what I > am > >trying to accomplish. > > > >By the way I have to say I love the ideas and > >implementation of WebMacro. Thanks > > > >import org.webmacro.engine.StringMacro; > >import org.webmacro.engine.MacroAdapter; > >import org.webmacro.engine.StringMacroAdapter; > >import org.webmacro.Context; > >import org.webmacro.Macro; > > > > > >public class Test { > > > > public static void main(String[] args) { > > try { > > > > > > > > Context ctx = new Context(); > > ctx.put("name", "David"); > > ctx.put("val1", 1); > > ctx.put("val2", 155); > > > > Macro macro = null; > > > > macro = new StringMacro("$name"); > > System.out.println( macro.evaluate( > ctx)); > > > > macro = new > >StringMacro("$name.substring(0,2).length()"); > > System.out.println( macro.evaluate( > ctx)); > > > > macro = new > >StringMacro("$name.substring(0,2).length()+5"); > > System.out.println( macro.evaluate( > ctx)); > > > > macro = new StringMacro("$val1 + > $val2"); > > System.out.println( macro.evaluate( > ctx)); > > > > macro = new StringMacroAdapter("$val1 + > >156"); > > System.out.println( macro.evaluate( > ctx)); > > > > macro = MacroAdapter.createMacro("$val1 > + > >$val2"); > > System.out.println( macro.evaluate( > ctx)); > > > > > > > > > > > > } catch(Throwable t){ > > t.printStackTrace(); > > } > > > > > > } > >} > > > > > > > > > > > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's > Geronimo App Server. Download > it for free - -and be entered to win a 42" plasma tv > or your very own > Sony(tm)PSP. Click here to play: > http://sourceforge.net/geronimo.php > _______________________________________________ > Webmacro-user mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/webmacro-user > __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php