项目中.java.vm文件_Velocity中加载vm文件的三种方式

Velocity中加载vm文件的三种方式

velocitypropertiespath

Velocity中加载vm文件的三种方式:

方式一:加载classpath目录下的vm文件

Properties p = new Properties();

p.put("file.resource.loader.class",

"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");

Velocity.init(p);

...

Velocity.getTemplate(templateFile);

方式二:根据绝对路径加载,vm文件置于硬盘某分区中,如:d://tree.vm

Properties p = new Properties();

p.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_PATH, "d://");

Velocity.init(p);

...

Velocity.getTemplate("tree.vm");

方式三:使用文本文件,如:velocity.properties,配置如下:

#encoding

input.encoding=UTF-8

output.encoding=UTF-8

contentType=text/html;charset=UTF-8

不要指定loader.

再利用如下方式进行加载

Properties p = new Properties();

p.load(this.getClass().getResourceAsStream("/velocity.properties"));

Velocity.init(p);

...

Velocity.getTemplate(templateFile);

package com.study.volicity;

import java.io.IOException;

import java.io.StringWriter;

import java.util.Properties;

import org.apache.velocity.app.Velocity;

import org.apache.velocity.Template;

import org.apache.velocity.VelocityContext;

public class Test {

public static void main(String args[]) throws IOException {

Properties pros = new Properties();

pros.load(Test.class.getClassLoader().getResourceAsStream("velocity.properties"));

Velocity.init(pros);

VelocityContext context = new VelocityContext();

context.put("name", "Velocity");

context.put("project", "Jakarta");

/* lets render a template 相对项目路径 */

Template template = Velocity.getTemplate("/view/header.vm");

StringWriter writer = new StringWriter();

/* lets make our own string to render */

template.merge(context, writer);

System.out.println(writer);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Velocity ,本地文件路径指的是相对于当前工作目录或者绝对路径的文件路径,用于加载模板文件或者读取资源文件等操作。本地文件路径可以是相对路径或者绝对路径,具体取决于使用时的上下文环境。 如果是在 Java 应用程序使用 Velocity,通常可以使用相对路径或绝对路径来指定本地文件路径。相对路径是相对于当前工作目录的路径,可以使用 "." 或 ".." 表示上级或下级目录。绝对路径是从根目录开始的路径,可以使用 "/" 或 "C:\\" 等表示。 以下是一个使用相对路径的例子: ```java import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class VelocityExample { public static void main(String[] args) { Velocity.init(); // 初始化 Velocity 引擎 VelocityContext context = new VelocityContext(); // 创建 Velocity 上下文对象 context.put("name", "Velocity"); // 添加模板变量 Template template = Velocity.getTemplate("template.vm"); // 加载模板文件,使用相对路径 // 如果模板文件在当前工作目录的 subdirectory 目录下,可以使用 "subdirectory/template.vm" try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) { template.merge(context, writer); // 渲染模板并输出到文件 } catch (IOException e) { e.printStackTrace(); } } } ``` 在上面的例子,我们使用了相对路径 "template.vm" 来指定模板文件的位置。这里假设模板文件位于当前工作目录下,可以使用 "." 来表示当前工作目录。如果模板文件在当前工作目录的 subdirectory 目录下,可以使用 "subdirectory/template.vm"。 需要注意的是,在使用相对路径时,要确保当前工作目录的正确性。如果不确定当前工作目录,可以使用 System.getProperty("user.dir") 方法来获取当前工作目录的路径。 如果使用绝对路径来指定本地文件路径,可以直接指定文件的绝对路径,例如: ```java Template template = Velocity.getTemplate("/absolute/path/to/template.vm"); ``` 在上面的例子,我们使用了绝对路径 "/absolute/path/to/template.vm" 来指定模板文件的位置。这里假设模板文件位于根目录下的 absolute/path/to 目录

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值