首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Velocity模版发动机的小例子(so easy)

2012-11-23 
Velocity模版引擎的小例子(so easy)package com.bcgogo.product.modelimport org.apache.velocity.*impo

Velocity模版引擎的小例子(so easy)

package com.bcgogo.product.model;import org.apache.velocity.*;import org.apache.velocity.Template;import org.apache.velocity.app.Velocity;import org.apache.velocity.app.VelocityEngine;import org.apache.velocity.exception.ParseErrorException;import org.apache.velocity.exception.ResourceNotFoundException;import org.apache.velocity.runtime.resource.loader.StringResourceLoader;import org.apache.velocity.runtime.resource.util.StringResourceRepository;import java.io.BufferedWriter;import java.io.OutputStreamWriter;import java.util.ArrayList;import java.util.Properties;/** * Created by IntelliJ IDEA. * User: WWW * Date: 12-9-3 * Time: 上午9:58 * To change this template use File | Settings | File Templates. */public class Example {  public Example() {    try {      /*      * setup      */      Properties p = new Properties();      p.setProperty("runtime.log", "velocity.log");      p.setProperty(VelocityEngine.RESOURCE_LOADER, "string");      p.setProperty("string.resource.loader.class", "org.apache.velocity.runtime.resource.loader.StringResourceLoader");      Velocity.init(p);      /*      *  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());      StringResourceRepository repo = StringResourceLoader.getRepository();      String myTemplateName = "goodsStoragePrint";      String myTemplate = "#set( $this = "Velocity")" +          "$this is great!" +          "#foreach( $name in $list )" +          "    $name is great!" +          "#end" +          "#set( $condition = true)" +          "#if ($condition)" +          "    The condition is true!" +          "#else" +          "    The condition is false!" +          "#end";      //模板资源存放 资源库 中      /**\       *       myTemplateName资源名称       *       myTemplate 资源内容       */      repo.putStringResource(myTemplateName, myTemplate);      /*      *  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(myTemplateName);      } catch (ResourceNotFoundException rnfe) {        System.out.println("Example : error : cannot find template "  );      } catch (ParseErrorException pee) {        System.out.println("Example : Syntax error in template " + ":" + 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();  }}
?

热点排行