我用的是velocity-1.6.4,官方自带的Example.java中的加载Velocity模板文件的代码有问题,原始代码为:
Velocity.init("velocity.properties");
试着运行说找不到velocity.properties。然后我改成绝对路径,还是不行。
最后查到,加载Velocity模板文件需要Velocity init一个属性类,以下是转的:
在J2EE应用开发中,经常将Velocity模板文件打包在JAR文件中一起部署,但是Velocity的缺省行为是从OS的文件系统中读取模板文件,使用FileResourceLoader来读取模板文件。
如果要改为从classpath中获取模板文件,那么要对Velocity的初始化参数进行调整:
VelocityEngine ve=new VelocityEngine();
//可选值:"class"--从classpath中读取,"file"--从文件系统中读取
ve.setProperty("resource.loader", "class");
//如果从文件系统中读取模板,那么属性值为org.apache.velocity.runtime.resource.loader.FileResourceLoader
ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
ve.init();
Template t=ve.getTemplate("/vmpath/test.vm");
另外,Velocity缺省提供了多种读取模板的方法,列举如下,具体内容可以参考发布包中的Javadoc:
org.apache.velocity.runtime.resource.loader.DataSourceResourceLoader
org.apache.velocity.runtime.resource.loader.JarResourceLoader
org.apache.velocity.runtime.resource.loader.StringResourceLoader
org.apache.velocity.runtime.resource.loader.URLResourceLoader
velocity做为一种模板语言,在这个方面也具备自己的实现方式,那就是velocimacro。
#velocitymacro 的模板
velocimacro.library=macros.vm
velocimacro.library.autoreload = true
分享到:
相关推荐
3. **读取模板文件**:使用Velocity的`ResourceLoader`加载Word模板文件,这通常涉及到文件系统的操作或者使用URL。 4. **填充数据**:在上下文中添加你需要的数据,例如数据库查询结果、服务器配置信息等。 5. **...
然后,在Java代码中初始化Velocity引擎,并通过Velocity引擎读取模板文件,再将Java对象数据传入模板,最终合并生成最终的文本输出。 具体实现步骤如下: 1. 创建模板文件hello.vm,在文件中定义输出内容,比如...
3. **加载模板**:读取模板文件并将其加载到Velocity引擎中。 4. **渲染模板**:使用上下文中的数据渲染模板,生成XML字符串。 5. **处理生成的XML**:根据需要,可以选择写入文件、发送到网络或者进行其他处理。 ...
- 设置编码,确保模板文件的读取和输出符合预期的字符集。 - 配置 VelocityContext,这是模板引擎与Java对象之间数据交换的桥梁,你可以将Java对象放入上下文,然后在模板中通过`$`引用。 学习这个"简单的velocity...
Velocity 读取模板文件并进行解析,生成一个内部的抽象语法树(AST)。 3. **` VelocityEngine`**:作为 Velocity 的核心,负责加载和管理模板,以及执行模板渲染。你可以配置 VelocityEngine 来指定模板路径、缓存...
通过Part接口的方法,如getInputStream(),可以读取文件内容,然后将其保存到服务器。 综上所述,"spring+velocity+ajax带进度条上传文件"是一个集成的Web开发解决方案,利用Spring处理文件上传,Velocity构建用户...
然而,默认情况下,Velocity会从操作系统的文件系统中读取模板文件,采用`FileResourceLoader`作为资源加载器。 为了使Velocity能够从类路径(classpath)中读取模板文件,我们需要调整其初始化参数。首先,创建一...
4. **生成静态页面**:在Maven构建过程中,Velocity插件会读取模板文件,结合Java代码中的数据,生成HTML或其他格式的静态页面,然后放置到指定的输出目录。 5. **测试与调试**:使用Maven的命令行工具,如`mvn ...
总的来说,`iText` 和 `Velocity` 的结合使用,为开发人员提供了一种高效且灵活的方法来生成带有动态数据的PDF文件,特别适用于合同模板的填充和生成。这种方法既可以利用HTML的易编辑性,又能享受到PDF的标准化和...
- `INPUT_ENCODING`: 输入编码,用于读取模板文件时的字符编码。 - `OUTPUT_ENCODING`: 输出编码,用于写入结果时的字符编码。 ### 解决中文乱码问题 在处理中文字符时,常常会遇到乱码的问题。这通常是由于编码不...
在实际使用中,开发者通常会创建一个或多个数据模型类,然后使用Velocity引擎读取这些模板文件,结合数据模型中的属性信息,自动生成相应的Java代码。生成的代码可以直接整合到项目中,无需手动编写这些重复性高的...
velocity 的源代码 Velocity 是一个基于 ...4. 转换 xml:Velocity 提供一个叫 Anakia 的 ant 任务,可以读取 XML 文件并让它能够被 Velocity 模板读取。一个比较普遍的应用是将 xdoc 文档转换成带样式的 HTML 文件。
3. **加载模板**: 使用引擎实例加载模板文件,例如`VelocityContext context = new VelocityContext();`和`String templatePath = "path/to/your/template.vm";`。 4. **设置上下文**: 将数据填充到上下文对象中,...
Velocity通过读取模板文件,然后结合用户提供的上下文数据,生成最终的输出。这个过程主要包括以下几个步骤: 1. **模板解析**:Velocity将模板文件解析成一个内部的抽象语法树(AST),这个过程会检查VTL指令的...
这可能涉及字符串拼接,或者使用模板引擎如FreeMarker或Velocity来动态生成代码。 7. **Java文件写入**:生成的Java代码字符串需要写入到文件系统中,可以使用`System.IO.File.WriteAllText`方法(在C#中)或等效的...
在`generator`目录下,应该包含了 Velocity 的模板文件,这些文件定义了Action、Serv、Dao层的代码结构和内容。例如,可能有一个`action.vm`用于生成Action类,`serv.vm`用于生成Service类,以及`dao.vm`用于生成DAO...
这里的 `FILE_RESOURCE_LOADER_PATH` 属性指定了模板文件的路径。 3. **设置 Context**:将需要在模板中使用的 Java 对象放入 Context。 ```java VelocityContext context = new VelocityContext(); context.put(...
这段代码会读取模板文件,使用上下文中的数据生成最终的字符串输出。 6. **运行实例** 完成上述步骤后,你可以运行你的Java工程,查看 Velocity如何根据模板和数据生成结果。如果`VolecityTest.vm`包含类似`Hello...
1. **创建 Velocity 模板**:首先,你需要创建一个Velocity模板文件(通常为`.vm`后缀),在其中定义PDF文档的结构和样式。例如,你可以写入HTML样式的标记,但保留动态内容的位置用`${variable}`表示。 2. **初始...