文针对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()); } }
3 从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(); } }
相关推荐
- **初始化**: Velocity 引擎加载配置,如模板路径、缓存策略等。 - **创建上下文**: 填充需要在模板中使用的数据。 - **合并模板**: 将上下文中的数据与模板结合,生成最终的 HTML 或其他格式的输出。 - **输出**: ...
Velocity模板语言(VTL)是一种简洁的文本标记语言,用于描述如何组合数据和模板以生成输出。常见的VTL指令包括: - `${expression}`:插入表达式的值,如 `${user.name}`。 - `#set($var = "value")`:设置变量 `$...
**Velocity模板路径** Velocity是Apache软件基金会的一个开源项目,它是一个强大的模板引擎,常用于Java应用中的视图层,如Web应用、邮件服务等。Velocity通过简洁易读的模板语言,使得开发者可以将HTML页面与业务...
综上所述,Velocity模板技术为Java开发者提供了一种灵活且高效的方式来生成动态HTML页面。通过对上述示例的深入分析,我们可以更好地理解Velocity的工作原理及其在实际项目中的应用。掌握Velocity不仅可以提高前端...
2. **创建Velocity上下文**:将数据模型放入Velocity Context,这是Velocity模板引擎工作的地方。 3. **加载模板**:读取模板文件并将其加载到Velocity引擎中。 4. **渲染模板**:使用上下文中的数据渲染模板,生成...
这段代码创建了一个Velocity上下文,添加了一个名为"name"的变量,并加载了一个名为"hello.vm"的Velocity模板。然后,模板与上下文合并,并将结果写入HTTP响应。 **4. 模板文件(hello.vm)** 模板文件通常包含HTML...
Velocity模板语言是一种标记语言,用于描述如何在模板中插入动态内容。VTL的语法简洁,主要包括以下几个关键概念: - `${}`:这是Velocity中的变量引用符号,用于插入Java对象的属性值。 - `#set()`:用于设置变量...
有三种类型的引用: - **变量 (Variables)**:以 `$` 开头,如 `$foo`。例如:`#set($foo = "gibbous")`,输出 `$moon = gibbous`。 - **属性 (Properties)**:以 `$` 开头,后跟标识符和点 `.`,如 `$customer....
在众多模板引擎中,Velocity和FreeMarker是两种非常受欢迎的选择。下面我们将从多个方面对这两种模板引擎进行详细的比较。 #### 一、简介 - **Velocity**:是一个基于Java的模板引擎,它允许开发者使用简单的模板...
** Velocity模板引擎的应用 ** 1. Web应用:Velocity常被用于MVC框架中,作为视图层的模板引擎,将数据模型与HTML模板结合,生成动态网页。 2. 邮件发送:Velocity可以用来生成个性化邮件内容,将用户信息嵌入到...
在提供的 `VelocityExample` 文件中,我们可以找到一个使用Velocity模板引擎的简单例子。这可能包括一个`.vm`模板文件,展示如何引用Java对象和执行控制结构,以及对应的Java代码,展示了如何创建上下文、加载模板并...
3. **Action类处理**:Action类中需要定义业务逻辑,返回的数据可以通过getter和setter方法供Velocity模板访问。 **三、Velocity基本语法** 1. **引用变量**:在Velocity模板中,可以使用`${variable}`来引用Java...
在这个项目中,"Myvelocity"可能是指包含Velocity模板文件和其他相关配置的目录。 Velocity的核心概念主要有以下几个: 1. **模板(Template)**:Velocity模板是HTML或XML文件,其中包含了动态内容的占位符,...
文件中提到了一些中文资料,如《VelocityJava开发指南中文版》、《Velocity模板使用指南中文版》等,这表明Velocity社区提供了相当完善的中文资料,有助于Java开发者更快速地学习和掌握Velocity的使用方法。...
- **在Velocity模板中访问XML**: 介绍了如何在Velocity模板中处理XML数据。 - **Velocity与Anakia**: Anakia是一种用于XSLT转换的工具,它可以与Velocity结合使用,以更灵活的方式处理XML数据。 - **Ant Build Task*...
本文将重点介绍三种常用的Java Web模板引擎:JSP(Java Server Pages)、Freemarker以及Velocity,并对它们进行深入比较。 #### JSP (Java Server Pages) JSP是一种基于Java技术的服务器端动态网页技术,通过在...
**三、Velocity模板语言** 1. **变量(Variable)**: 变量以`$`开头,如`$name`。当Velocity渲染模板时,它会查找与变量名匹配的上下文对象属性。 2. **指令(Directives)**: 指令允许你在模板中执行控制结构,如...
#### 三、Velocity模板语言(VTL) Velocity模板语言(VTL)是Velocity用来在模板中表达逻辑和变量的语言。VTL支持变量声明、条件判断、循环等基本编程结构。 - **变量声明**:使用`#set($变量名="值")`。 - **...
总结来说,Java Velocity模板引擎提供了一种方便的方式来分离视图和控制,使得前端开发人员可以专注于HTML设计,而无需关心后端逻辑。通过实例,我们了解了如何在IntelliJ IDEA中设置环境,创建Servlet,配置`web....
在Java Web开发中,Apache Velocity是一个常用的模板引擎,它允许开发者将内容和呈现逻辑分离,提供了一种高效的动态内容生成方式。本文将深入解析Velocity的初始化过程,帮助开发者更好地理解和使用这一工具。 ...