zoukankan      html  css  js  c++  java
  • velocity 模板

    一、应用场景:
    1.Web 应用:开发者在不使用 JSP 的情况下,可以用 Velocity 让 HTML 具有动态内容的特性。前后台隔离
    2. 源代码生成:Velocity 可以被用来生成 Java 代码、SQL 或者 PostScript。有很多开源和商业开发的软件是使用 Velocity 来开发的。
    3. 自动 Email:很多软件的用户注册、密码提醒或者报表都是使用 Velocity 来自动生成的。使用 Velocity 可以在文本文件里面生成邮件内容,而不是在 Java 代码中拼接字符串。
    4. 转换 xml:Velocity 提供一个叫 Anakia 的 ant 任务,可以读取 XML 文件并让它能够被 Velocity 模板读取。一个比较普遍的应用是将 xdoc 文档转换成带样式的 HTML 文件。
    二、利用模板生成 
    package core.test.velocity;
    
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.velocity.Template;
    import org.apache.velocity.VelocityContext;
    import org.apache.velocity.app.VelocityEngine;
    import org.apache.velocity.runtime.RuntimeConstants;
    import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
    
    /**
     * velocity 生成代码,还有其他的功能,email模板,自动生成代码,web前后台分离,转XML模板
     * @author chenyd
     * 2017年10月17日
     */
    public class hellovelocity {
        
        public static void main(String[] args) throws IOException {
            // 初始化模板引擎
            VelocityEngine ve = new VelocityEngine();
             ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
             ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
            ve.init();
            // 获取模板文件
            Template t = ve.getTemplate("core/test/velocity/hellovelocity.vm");
            // 设置变量
            VelocityContext ctx = new VelocityContext();
            ctx.put("name", "Velocity");
            ctx.put("flag", "true");
            List list = new ArrayList();
            list.add("1");
            list.add("2");
            ctx.put("list", list);
            // 输出
            File f=new File("E:/cyd/poject/maven/MSpringFrame/src/core/test/velocity/hellovelocity.txt");
            BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f)));
            t.merge(ctx,bw);
            System.out.println(bw.toString());
            bw.flush();
            bw.close();
        }
    }

    hellovelocity.vm

    #set($greet = 'hello')
    
    $greet $name
     
    #foreach($i in $list)
    $i
    #end
    
    #if($flag)
        true
    #elseif($flag)
        false    
    #else
        
    #end
    三、模板方式导出word文档
    word以XML文件保存,动态生成数据。于利用模板生成文件类似。
     
     
  • 相关阅读:
    汇编实验程序
    javascript事件列表解说
    c#自动向网页Post信息并提取返回的信息
    C# 全半角转换
    判断 wp 是否是活跃页面
    Font Support for Windows Phone
    C# sqlite for wp7
    C#例子 易懂故事 接口 委托 事件 异步通知 好玩.
    C#用事件模式实现通知 from: http://www.cnblogs.com/guilin_gavin/archive/2011/08/18/2144397.html
    wp7 webclient 的 post 方式获取数据
  • 原文地址:https://www.cnblogs.com/litblank/p/7922087.html
Copyright © 2011-2022 走看看