public static void Main(System.String[] args) { // first, we init the runtime engine. Defaults are fine. try { Velocity.Init(); } catch (System.Exception e) { System.Console.Out.WriteLine("Problem initializing Velocity : " + e); return; } // lets make a Context and put data into it VelocityContext context = new VelocityContext(); context.Put("name", "Velocity"); context.Put("project", "Jakarta"); // lets render a template StringWriter writer = new StringWriter(); try { Velocity.MergeTemplate("example2.vm", context, writer); } catch (System.Exception e) { System.Console.Out.WriteLine("Problem merging template : " + e); } System.Console.Out.WriteLine(" template : " + writer.GetStringBuilder().ToString()); // lets dynamically 'create' our template // and use the evaluate() method to render it System.String s = "We are using $project $name to render this."; writer = new StringWriter(); try { Velocity.Evaluate(context, writer, "mystring", s); } catch (ParseErrorException pee) { // thrown if something is wrong with the // syntax of our template string System.Console.Out.WriteLine("ParseErrorException : " + pee); } catch (MethodInvocationException mee) { // thrown if a method of a reference // called by the template // throws an exception. That won't happen here // as we aren't calling any methods in this // example, but we have to catch them anyway System.Console.Out.WriteLine("MethodInvocationException : " + mee); } catch (System.Exception e) { System.Console.Out.WriteLine("Exception : " + e); } System.Console.Out.WriteLine(" string : " + writer.GetStringBuilder().ToString()); }
public Example1(System.String templateFile) { try { /* * setup */ Velocity.Init("nvelocity.properties"); /* * Make a context object and populate with the data. This * is where the Velocity engine gets the data to resolve the * references (ex. $list) in the template */ VelocityContext context = new VelocityContext(); context.Put("list", Names); /* * get the Template object. This is the parsed version of your * template input file. Note that getTemplate() can throw * ResourceNotFoundException : if it doesn't find the template * ParseErrorException : if there is something wrong with the VTL * Exception : if something else goes wrong (this is generally * indicative of as serious problem...) */ Template template = null; try { template = Velocity.GetTemplate(templateFile) ; } catch (ResourceNotFoundException) { System.Console.Out.WriteLine("Example1 : error : cannot find template " + templateFile); } catch (ParseErrorException pee) { System.Console.Out.WriteLine("Example1 : Syntax error in template " + templateFile + ":" + pee); } /* * Now have the template engine process your template using the * data placed into the context. Think of it as a 'merge' * of the template and the data to produce the output stream. */ if (template != null) { template.Merge(context, System.Console.Out); } } catch (System.Exception e) { System.Console.Out.WriteLine(e); } }