Velocity Standalone application
/* * Copyright 2001,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.io.StringWriter; import java.util.Properties; import org.apache.velocity.app.Velocity; import org.apache.velocity.VelocityContext; import org.apache.velocity.exception.ParseErrorException; import org.apache.velocity.exception.MethodInvocationException; /** * This class is a simple demonstration of how the Velocity Template Engine * can be used in a standalone application using the Velocity utility class. * * It demonstrates two of the 'helper' methods found in the org.apache.velocity.util.Velocity * class, mergeTemplate() and evaluate(). * * * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a> * @version $Id: Example2.java,v 1.3.14.1 2004/03/04 00:18:29 geirm Exp $ */ public class Example2 { public static void main( String args[] ) { /* first, we init the runtime engine. Defaults are fine. */ try { Velocity.init(); } catch(Exception e) { System.out.println("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 w = new StringWriter(); try { Velocity.mergeTemplate("./src/example2.vm", context, w ); } catch (Exception e ) { System.out.println("Problem merging template : " + e ); } System.out.println(" template : " + w ); /* * lets dynamically 'create' our template * and use the evaluate() method to render it */ String s = "We are using $project $name to render this."; w = new StringWriter(); try { Velocity.evaluate( context, w, "mystring", s ); } catch( ParseErrorException pee ) { /* * thrown if something is wrong with the * syntax of our template string */ System.out.println("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.out.println("MethodInvocationException : " + mee ); } catch( Exception e ) { System.out.println("Exception : " + e ); } System.out.println(" string : " + w ); } } ------------------------------------------------------------------------------------- Hello from $name in the $project project.
1. | How the Velocity Template Engine can be used in a standalone application | ![]() |