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文件保存,动态生成数据。于利用模板生成文件类似。
     
     
  • 相关阅读:
    Liferay 6.2 改造系列之十五:修改默认可用语言
    Liferay 6.2 改造系列之十七:当Portlet无权限时,不显示错误信息
    Liferay 6.2 改造系列之十四:修改组织的表单内容
    Liferay 6.2 改造系列之十三:修改用户编辑页面表单内容
    Liferay 6.2 改造系列之十一:默认关闭CDN动态资源
    matlab向量的排序(自写函数)
    matlab求一个矩阵中各元素出现的个数(归一化)
    matlab求矩阵的鞍点
    matlab求矩阵、向量的模
    matlab求最大公约数和最小公倍数
  • 原文地址:https://www.cnblogs.com/litblank/p/7922087.html
Copyright © 2011-2022 走看看