Velocity是一个基于java的模板引擎。它允许任何人仅仅简单的使用模板语言来引用由java代码
定义的对象。
工程目录为:
example.vm内容如下:
#set( $this = "Velocity")
$this is great!
#foreach( $name in $list )
$name is great!
#end
#set( $condition = true)
#if ($condition)
The condition is true!
#else
The condition is false!
#end
Example.java代码如下:
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.test;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Properties;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
public class Example
{
public Example(String templateFile)
{
try
{
Properties p = new Properties() ;
String basePath = "src/template";
p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, basePath);
Velocity.init(p);
VelocityContext context = new VelocityContext();
context.put("list", getNames());
Template template = null;
try
{
template = Velocity.getTemplate(templateFile);
}
catch( ResourceNotFoundException rnfe )
{
System.out.println("Example : error : cannot find template " + templateFile );
}
catch( ParseErrorException pee )
{
System.out.println("Example : Syntax error in template " + templateFile + ":" + pee );
}
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
if ( template != null)
template.merge(context, writer);
writer.flush();
writer.close();
}
catch( Exception e )
{
System.out.println(e);
}
}
@SuppressWarnings("unchecked")
public ArrayList getNames()
{
ArrayList list = new ArrayList();
list.add("ArrayList element 1");
list.add("ArrayList element 2");
list.add("ArrayList element 3");
list.add("ArrayList element 4");
return list;
}
public static void main(String[] args)
{
new Example("example.vm");
}
}
运行结果如下:
Velocity is great!
ArrayList element 1 is great!
ArrayList element 2 is great!
ArrayList element 3 is great!
ArrayList element 4 is great!
The condition is true!
- 大小: 29.3 KB
分享到:
相关推荐
**Velocity初始化过程解析** 在Java Web开发中,Apache Velocity是一个常用的模板引擎,它允许开发者将内容和呈现逻辑分离,提供了一种高效的动态内容生成方式。本文将深入解析Velocity的初始化过程,帮助开发者更...
然后,在Java代码中初始化Velocity引擎,并通过Velocity引擎读取模板文件,再将Java对象数据传入模板,最终合并生成最终的文本输出。 具体实现步骤如下: 1. 创建模板文件hello.vm,在文件中定义输出内容,比如...
其中包含了许多关键组件,如`VelocityContext`(用于存储模板变量)、`Template`(表示模板文件)和`VelocityRuntime`(初始化并管理Velocity环境)。 3. **avalon-logkit-2.1.jar**:Avalon LogKit是Apache软件...
`VelocityTest` 文件可能是项目中的主要源代码文件,它可能包含了初始化Velocity上下文、加载模板和渲染输出的过程。例如,它可能有以下代码片段: ```java VelocityContext context = new VelocityContext(); ...
- 初始化Velocity:在Java代码中,使用`Velocity.init()`方法初始化Velocity引擎,并加载配置文件。 - 设置上下文:通过`VelocityContext`对象将Java对象添加到上下文中,以便在模板中使用。 - 渲染模板:调用`...
1. **初始化Velocity上下文**:在Java代码中,你需要创建一个`VelocityContext`对象,并向其中添加你要在模板中使用的变量。 2. **加载模板**:使用`VelocityReader`或`ResourceLoader`加载模板文件。 3. **合并上...
3. 使用`#set`指令时,记得对变量进行初始化,防止空指针异常。 4. 利用Velocity提供的宏(macro)功能,可以创建可重用的代码片段,提高模板的复用性。 5. 调试和错误处理:使用Velocity的`#debug`指令可以帮助...
在Java代码中,我们需要初始化Velocity上下文(Context)和Velocity引擎。在`main`方法中,加入以下代码: ```java import org.apache.velocity.app.VelocityEngine; import org.apache.velocity.VelocityContext; ...
2. **初始化 Velocity**:在Java代码中,需要导入`org.apache.velocity.app.VelocityEngine`并实例化,配置Velocity的属性,如模板路径、缓存策略等。 3. **设置上下文**:创建一个`VelocityContext`对象,将需要在...
Spring Boot简化了Spring的初始化和配置过程,而Velocity则是一个强大的模板引擎,常用于生成动态内容。 1. **SpringBoot基础**: Spring Boot是基于Spring框架的微服务开发工具,它内置了Tomcat服务器,简化了...
1. **初始化 Velocity**:调用 Velocity.init() 来初始化引擎,加载必要的配置。 2. **创建 Context 对象**:Context 对象是数据容器,用于存储要展示的数据。 3. **添加数据**:将 Java 对象放入 Context 中,...
1. **初始化 Velocity**:调用 Velocity.init() 来初始化 Velocity 环境。 2. **创建 Context 对象**:创建 VelocityContext 实例,它是一个键值对容器,用来存储要传递到模板的数据。 3. **添加数据到 Context**:...
- **初始化 Velocity**:通过 Velocity 的 API 初始化引擎,并配置相关的属性。 #### 七、Velocity 的高级功能 1. **国际化支持**:Velocity 支持多语言和国际化,可以方便地切换不同语言版本的模板。 2. **错误...
3. **初始化Velocity**:通过调用`Velocity.Init()`方法初始化Velocity引擎。 4. **获取模板**:使用`Velocity.GetTemplate`方法获取指定名称的模板。 5. **创建上下文对象**:创建一个`VelocityContext`对象用于...
1. **创建引擎实例**:通过`org.apache.velocity.app.VelocityEngine`初始化Velocity引擎。 2. **设置配置**:配置Velocity,例如模板路径、缓存策略等。 3. **加载模板**:使用引擎加载模板文件。 4. **填充上下文*...
首先,需要初始化 Velocity 运行时环境: ```java Properties props = new Properties(); props.setProperty("runtime.log.logsystem.class", "org.apache.velocity.runtime.log.SimpleLog4JLogSystem"); props.set...
它介绍了Velocity Engine的API,包括初始化、渲染模板、数据模型的构建等。同时,书中还会讲解如何利用Velocity进行模板测试,以及在大型项目中的性能优化策略。 通过学习这四本书,开发者不仅可以掌握Velocity的...
在这个示例中,`VelocityDemo`类创建了一个`VelocityEngine`实例,初始化了`VelocityContext`并添加了两个变量:`name`和`color`。接着,它从资源文件夹中加载了`welcome.vm`模板,并使用`merge`方法将上下文中的...