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文件保存,动态生成数据。于利用模板生成文件类似。
     
     
  • 相关阅读:
    grunt in webstorm
    10+ Best Responsive HTML5 AngularJS Templates
    响应式布局
    responsive grid
    responsive layout
    js event bubble and capturing
    Understanding Service Types
    To add private variable to this Javascript literal object
    Centering HTML elements larger than their parents
    java5 新特性
  • 原文地址:https://www.cnblogs.com/litblank/p/7922087.html
Copyright © 2011-2022 走看看