Mega Code Archive

 
Categories / Java / Velocity
 

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.                     velocity-Velocity-Standalone.zip( 1,876 k)