`
wm920
  • 浏览: 80547 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

velocity模板加载的三种形式

阅读更多

文针对velocity模板加载的三种方式进行说明

一:velocity默认加载方式(文件加载)  (下面是针对文件加载的目录结构)

 

 

1.直接读取资源文件方式

 

public class VelocityTemplate {
    public static String getVelocityTemplate(String basePath) throws Exception {
        String sysRoot = VelocityTemplate.class.getResource("").getPath();
        Properties properties = new Properties();
        //设置velocity资源加载方式为file
        properties.setProperty("resource.loader", "file");
        //设置velocity资源加载方式为file时的处理类
        properties.setProperty("file.resource.loader.class","org.apache.velocity.runtime.resource.loader.FileResourceLoader");
        properties.put("input.encoding", "UTF-8");
        properties.put("output.encoding", "UTF-8");
        //实例化一个VelocityEngine对象
        VelocityEngine velocityEngine = new VelocityEngine(properties);
        //实例化一个VelocityContext
        VelocityContext velocityContext = new VelocityContext();
        //向VelocityContext中放入键值
        context.put("username", "张三");
        context.put("password", "123456789");
        context.put("age", "20");
        //实例化一个StringWriter
        StringWriter writer=new StringWriter();
        Template template = velocityEngine.getTemplate(sysRoot+basePath, "UTF-8");
        template.merge(velocityContext, stringWriter);
        return stringWriter.toString();
    }
}

 2  从类路径加载模板文件

 

package com.velocity.test;
import java.io.StringWriter;
import java.util.Properties;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
/**
 * 从class(类路径)中加载模板文件
 */
public class LoaderFromClass {
    public static void main(String[] args) throws Exception{
        //初始化参数
        Properties properties=new Properties();
        //设置velocity资源加载方式为class
        properties.setProperty("resource.loader", "class");
        //设置velocity资源加载方式为file时的处理类
        properties.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
        //实例化一个VelocityEngine对象
        VelocityEngine velocityEngine=new VelocityEngine(properties);
        
        //实例化一个VelocityContext
        VelocityContext context=new VelocityContext();
        //向VelocityContext中放入键值
        context.put("username", "张三");
        context.put("password", "123456789");
        context.put("age", "20");
        context.put("address", "陕西西安"); 
        context.put("blog", "http://blogjava.net/sxyx2008");
        //实例化一个StringWriter
        StringWriter writer=new StringWriter();
        //从src目录下加载hello.vm模板
        //假若在com.velocity.test包下有一个hello.vm文件,那么加载路径为com/velocity/test/hello.vm
        velocityEngine.mergeTemplate("com/velocity/test/hello.vm", "gbk", context, writer);
        //velocityEngine.mergeTemplate("hello.vm", "gbk", context, writer);
        System.out.println(writer.toString());
    }
}

 

从jar文件中加载模板文件

public class VelocityTemplate {
    public static String getVelocityTemplate(String basePath) throws Exception {
        String sysRoot = VelocityTemplate.class.getResource("").getPath();
        //初始化参数
        Properties properties=new Properties();
        //设置velocity资源加载方式为jar
        properties.setProperty("resource.loader", "jar");
        //设置velocity资源加载方式为file时的处理类
        properties.setProperty("jar.resource.loader.class", "org.apache.velocity.runtime.resource.loader.JarResourceLoader");
        //设置jar包所在的位置
        properties.setProperty("jar.resource.loader.path", "jar:file:/F:/quicksure_Server_Provider.jar");
        properties.put("input.encoding", "UTF-8");
        properties.put("output.encoding", "UTF-8");
        //实例化一个VelocityEngine对象
        VelocityEngine velocityEngine = new VelocityEngine(properties);
        //实例化一个VelocityContext
        VelocityContext velocityContext = new VelocityContext();
        //向VelocityContext中放入键值
        context.put("username", "张三");
        context.put("password", "123456789");
        context.put("age", "20");
        //实例化一个StringWriter
        StringWriter writer=new StringWriter();
        Template template = velocityEngine.getTemplate("com/quicksure/insurance/velocity/template/"+basePath, "UTF-8");
        template.merge(velocityContext, stringWriter);
        return stringWriter.toString();
    }
}

 

 

 

  • 大小: 28.5 KB
分享到:
评论

相关推荐

    Velocity模板使用指南中文版

    - **初始化**: Velocity 引擎加载配置,如模板路径、缓存策略等。 - **创建上下文**: 填充需要在模板中使用的数据。 - **合并模板**: 将上下文中的数据与模板结合,生成最终的 HTML 或其他格式的输出。 - **输出**: ...

    Velocity模板应用

    Velocity模板语言(VTL)是一种简洁的文本标记语言,用于描述如何组合数据和模板以生成输出。常见的VTL指令包括: - `${expression}`:插入表达式的值,如 `${user.name}`。 - `#set($var = "value")`:设置变量 `$...

    velocity模板路径

    **Velocity模板路径** Velocity是Apache软件基金会的一个开源项目,它是一个强大的模板引擎,常用于Java应用中的视图层,如Web应用、邮件服务等。Velocity通过简洁易读的模板语言,使得开发者可以将HTML页面与业务...

    Velocity模板技术

    综上所述,Velocity模板技术为Java开发者提供了一种灵活且高效的方式来生成动态HTML页面。通过对上述示例的深入分析,我们可以更好地理解Velocity的工作原理及其在实际项目中的应用。掌握Velocity不仅可以提高前端...

    Velocity Template的另类用法:生成XML

    2. **创建Velocity上下文**:将数据模型放入Velocity Context,这是Velocity模板引擎工作的地方。 3. **加载模板**:读取模板文件并将其加载到Velocity引擎中。 4. **渲染模板**:使用上下文中的数据渲染模板,生成...

    JAVAEE Velocity例子工程

    这段代码创建了一个Velocity上下文,添加了一个名为"name"的变量,并加载了一个名为"hello.vm"的Velocity模板。然后,模板与上下文合并,并将结果写入HTTP响应。 **4. 模板文件(hello.vm)** 模板文件通常包含HTML...

    velocity中文

    Velocity模板语言是一种标记语言,用于描述如何在模板中插入动态内容。VTL的语法简洁,主要包括以下几个关键概念: - `${}`:这是Velocity中的变量引用符号,用于插入Java对象的属性值。 - `#set()`:用于设置变量...

    Velocity介绍.ppt

    有三种类型的引用: - **变量 (Variables)**:以 `$` 开头,如 `$foo`。例如:`#set($foo = "gibbous")`,输出 `$moon = gibbous`。 - **属性 (Properties)**:以 `$` 开头,后跟标识符和点 `.`,如 `$customer....

    Velocity 和 FreeMarker区别

    在众多模板引擎中,Velocity和FreeMarker是两种非常受欢迎的选择。下面我们将从多个方面对这两种模板引擎进行详细的比较。 #### 一、简介 - **Velocity**:是一个基于Java的模板引擎,它允许开发者使用简单的模板...

    JAVA的Velocity语法学习

    ** Velocity模板引擎的应用 ** 1. Web应用:Velocity常被用于MVC框架中,作为视图层的模板引擎,将数据模型与HTML模板结合,生成动态网页。 2. 邮件发送:Velocity可以用来生成个性化邮件内容,将用户信息嵌入到...

    Velocity

    在提供的 `VelocityExample` 文件中,我们可以找到一个使用Velocity模板引擎的简单例子。这可能包括一个`.vm`模板文件,展示如何引用Java对象和执行控制结构,以及对应的Java代码,展示了如何创建上下文、加载模板并...

    Velocity语法以及整合struts2总结

    3. **Action类处理**:Action类中需要定义业务逻辑,返回的数据可以通过getter和setter方法供Velocity模板访问。 **三、Velocity基本语法** 1. **引用变量**:在Velocity模板中,可以使用`${variable}`来引用Java...

    Velocity Demo

    在这个项目中,"Myvelocity"可能是指包含Velocity模板文件和其他相关配置的目录。 Velocity的核心概念主要有以下几个: 1. **模板(Template)**:Velocity模板是HTML或XML文件,其中包含了动态内容的占位符,...

    Velocity资料

    文件中提到了一些中文资料,如《VelocityJava开发指南中文版》、《Velocity模板使用指南中文版》等,这表明Velocity社区提供了相当完善的中文资料,有助于Java开发者更快速地学习和掌握Velocity的使用方法。...

    掌握Apache Velocity

    - **在Velocity模板中访问XML**: 介绍了如何在Velocity模板中处理XML数据。 - **Velocity与Anakia**: Anakia是一种用于XSLT转换的工具,它可以与Velocity结合使用,以更灵活的方式处理XML数据。 - **Ant Build Task*...

    jsp、freemarker、velocity简介和对比

    本文将重点介绍三种常用的Java Web模板引擎:JSP(Java Server Pages)、Freemarker以及Velocity,并对它们进行深入比较。 #### JSP (Java Server Pages) JSP是一种基于Java技术的服务器端动态网页技术,通过在...

    Velocity教程

    **三、Velocity模板语言** 1. **变量(Variable)**: 变量以`$`开头,如`$name`。当Velocity渲染模板时,它会查找与变量名匹配的上下文对象属性。 2. **指令(Directives)**: 指令允许你在模板中执行控制结构,如...

    使用velocity

    #### 三、Velocity模板语言(VTL) Velocity模板语言(VTL)是Velocity用来在模板中表达逻辑和变量的语言。VTL支持变量声明、条件判断、循环等基本编程结构。 - **变量声明**:使用`#set($变量名="值")`。 - **...

    JAVA velocity模板引擎使用实例

    总结来说,Java Velocity模板引擎提供了一种方便的方式来分离视图和控制,使得前端开发人员可以专注于HTML设计,而无需关心后端逻辑。通过实例,我们了解了如何在IntelliJ IDEA中设置环境,创建Servlet,配置`web....

    Velocity初始化过程解析

    在Java Web开发中,Apache Velocity是一个常用的模板引擎,它允许开发者将内容和呈现逻辑分离,提供了一种高效的动态内容生成方式。本文将深入解析Velocity的初始化过程,帮助开发者更好地理解和使用这一工具。 ...

Global site tag (gtag.js) - Google Analytics