diff options
Diffstat (limited to 'velocity-engine-examples/src/main/java/org/apache/velocity/example/Example.java')
-rw-r--r-- | velocity-engine-examples/src/main/java/org/apache/velocity/example/Example.java | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/velocity-engine-examples/src/main/java/org/apache/velocity/example/Example.java b/velocity-engine-examples/src/main/java/org/apache/velocity/example/Example.java new file mode 100644 index 00000000..7717f382 --- /dev/null +++ b/velocity-engine-examples/src/main/java/org/apache/velocity/example/Example.java @@ -0,0 +1,126 @@ +package org.apache.velocity.example; +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.apache.velocity.exception.ParseErrorException; +import org.apache.velocity.exception.ResourceNotFoundException; + +import java.io.BufferedWriter; +import java.io.OutputStreamWriter; +import java.util.ArrayList; + +/** + * This class is a simple demonstration of how the Velocity Template Engine + * can be used in a standalone application. + * + * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a> + * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a> + * @version $Id$ + */ + +public class Example +{ + public Example(String templateFile) + { + try + { + /* + * setup + */ + + Velocity.init("velocity.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", getNames()); + + /* + * 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 rnfe ) + { + System.out.println("Example : error : cannot find template " + templateFile ); + } + catch( ParseErrorException pee ) + { + System.out.println("Example : 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. + */ + + BufferedWriter writer = new BufferedWriter( + new OutputStreamWriter(System.out)); + + if ( template != null) + template.merge(context, writer); + + /* + * flush and cleanup + */ + + writer.flush(); + writer.close(); + } + catch( Exception e ) + { + System.out.println(e); + } + } + + public ArrayList getNames() + { + ArrayList list = new ArrayList(); + + list.add("ArrayList element 1"); + list.add("ArrayList element 2"); + list.add("ArrayList element 3"); + list.add("ArrayList element 4"); + + return list; + } + + public static void main(String[] args) + { + Example t = new Example(args[0]); + } +} |