`

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();
  }
}
 
分享到:
评论

相关推荐

    Velocity模板引擎Velocity模板引擎

    Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎

    Velocity模板引擎技术在Java Web中的应用.pdf

    "Velocity模板引擎技术在Java Web中的应用" Velocity模板引擎技术是Java Web开发中的一种重要技术,旨在解决Java Web页面视图和业务逻辑的耦合问题。通过使用Velocity模板引擎技术,可以将Java Web页面视图和业务...

    velocity模板引擎

    ### Velocity 模板引擎知识点详解 #### 一、Velocity简介及基本概念 Velocity与Freemarker、JSTL并称为Java Web开发中的三大标签技术。Velocity是一种基于Java的模板引擎,它允许Web开发者通过简单的模板语法来生成...

    JavaScript模板引擎Velocity.js.zip

    Velocity 是基于Java的模板引擎,广泛应用在阿里集 体各个子公司。Velocity模板适用于大量模板使用的场景,支持复杂的逻辑运算,包含 基本数据类型、变量赋值和函数等功能。Velocity.js 支持 Node.js 和浏览器环境。...

    velocity开发包vm模板引擎

    Velocity是一款强大的Java模板引擎,由Apache软件基金会开发并维护,它是Apache Jakarta项目的一部分。 Velocity的主要设计目标是将表现层逻辑从应用逻辑中分离出来,使开发者可以专注于业务逻辑的实现,而无需关心...

    Velocity_中文手册

    Velocity是一个基于Java的模板引擎,它的主要用途是将动态内容嵌入到Web页面中。模板引擎是一种将模板(template)和数据结合生成文档的软件。Velocity通过使用简单而功能强大的脚本语言——Velocity模板语言...

    Velocity模板引擎 v2.2.0.zip

    在Velocity模板中,开发者可以使用特定的指令(如#$或##)来插入Java代码片段,这些代码会被引擎解析并执行,然后将结果插入到模板的相应位置。这样,模板设计者可以专注于页面布局,而程序员则关注业务逻辑。 ...

    SpringBoot Velocity 代码生成模板

    在Spring Boot项目中,利用Velocity模板引擎,我们可以创建一系列模板文件,如Mapper、Mapper.xml、Service和Controller等,这些模板在运行时会根据数据库中的表结构动态生成对应的Java源码。这不仅避免了手动编写...

    Velocity模板技术语法详细介绍

    Velocity模板技术语法详细介绍,包括很详细的示例代码 1.变量………………………………………………………………………………1 2.循环………………………………………………………………………………2 3.条件语句...

    Struts2与Velocity模板

    Velocity 是一种基于 JAVA 的模板引擎,开发人员使用简单的模板语言就可以快速开发显示层,它使得显示层与程序代码分离。在 Struts2 框架中,Velocity 模板引擎可以与 Struts2 集成,实现了显示层与程序代码的分离。...

    Velocity模板解析

    - `Velocity.init()`初始化引擎,`Velocity.evaluate()`或`Velocity.mergeTemplate()`用于处理模板并生成输出。 4. **模板继承与导入** - 使用`#include`或`#parse`指令引入其他模板文件,实现模板复用。 - `#...

    Velocity模板邮件发送例子(Spring框架)(可通用,支持多扩展)

    在IT行业中, Velocity是一款强大的模板引擎,常用于生成动态网页内容。它被广泛应用于Java Web开发,尤其是在Spring框架中,可以结合使用来实现高效的邮件发送功能。本示例将详细介绍如何利用Velocity模板和Spring...

    Java Velocity模板引擎,简单字符串生成

    Java Velocity模板引擎是一种基于Apache软件基金会的开源项目,用于生成动态内容。它是Java应用程序中用于创建HTML、XML、电子邮件等静态或动态文档的强大的模板语言和库。Velocity旨在将内容展示与业务逻辑分离,使...

    Velocity模板入门DEMO

    Velocity模板语言(Velocity Template Language,简称VTL)是Apache软件基金会的Velocity项目中的一部分,它是一种用于生成动态网页内容的模板引擎。Velocity以其简洁、易读的语法,为Java开发者提供了一种高效的...

    基于Java语言的Velocity模板引擎集成工具设计源码

    该项目是一款基于Java语言的Velocity模板引擎集成工具设计源码,包含245个文件,涵盖142个Java源文件、44个VM模板文件、24个XML配置文件、13个属性文件、8个文本文件、3个JSON文件、2个HTML文件和各1个gitignore、...

    velocity简单小例子

    总结来说,Velocity小例子主要展示了如何在Java应用中使用Velocity模板引擎生成动态内容。通过学习和实践这个例子,你可以掌握如何定义变量、使用指令和宏,以及如何通过上下文传递数据,从而更好地理解和应用...

Global site tag (gtag.js) - Google Analytics