org.apache.velocity.exception.ResourceNotFoundException的解决方案

最近在学习Velocity,用到了VelocityEngine这个类,调用其getTemplate方法时,里面的路径设置一直有问题

VelocityEngine ve = new VelocityEngine();
ve.init();
Template t = ve.getTemplate(fileName);

实验多次后发现上面的fileName必须是直接位于项目目录下的路径,直接写绝对路径都不行
例如:

template = ve.getTemplate("welcome.vm"); 
welcome.vm放到你的项目根目录,也就是x:/tomcat/webapps/yourProject/welcome.vm 

如果是:

template = ve.getTemplate("abc/welcome.vm"); 
welcome.vm放到你的项目的位置是x:/tomcat/webapps/yourProject/abc/welcome.vm 

但是这样一来,有些人的本地开发和服务器测试时,模板文件的位置就不太一样,就会出现路径不对而throw出org.apache.velocity.exception.ResourceNotFoundException异常
后来又实验了半天,终于发现以下方法可以解决问题,可以用绝对路径来配置,我这里是动态获取路径
我的模板文件是放在资源目录的 “template” 目录下,但把项目发布到solaris系统的websphere上路径就很乱了,所以动态获取路径可以解决

String fileDir = 我的类名.class.getResource("/template").getPath();
VelocityEngine ve = new VelocityEngine();
Properties properties = new Properties();
properties.setProperty(ve.FILE_RESOURCE_LOADER_PATH, fileDir); //此处的fileDir可以直接用绝对路径来
//指定,如"D:/template",但记住只要指定到文件夹就行了
ve.init(properties); //初始化
Template t = ve.getTemplate("welcome.vm");//此处只要指明文件名就可以了.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: org.apache.velocity是一个Java模板引擎,它允许开发人员使用模板语言来生成文本输出。它是Apache软件基金会的一个开源项目,被广泛用于Web应用程序和其他Java应用程序中。Velocity提供了一种简单而强大的方式来将数据与模板结合起来,生成各种类型的输出,包括HTML、XML、JSON、文本和其他格式。它还支持条件语句、循环、变量、宏和其他高级功能,使开发人员能够轻松地创建复杂的模板。 ### 回答2: org.apache.velocity是一个流行的开源Java模板引擎,由Apache软件基金会维护。它可以将预先创建好的模板和数据结合生成静态网页或动态网页。 Velocity模板语言采用基于文本文件的方式,模板文件可以编辑成HTML、XML、全文搜索以及其他类型文件。Velocity使用简单,模板采用平板化设计,没有商业模板引擎的专业设计和开发团队,可以随意编辑。 该引擎支持包含逻辑表达式、循环和条件语句、宏定义、局部变量和全局变量、模板串联等特征,支持面向对象的处理方式,可以将数据和模板进行更加灵活的组合并生成丰富、高效的内容。 通常情况下,Velocity配合Maven使用可以更加方便快捷地完成Java项目的开发和部署。同时,Velocity也提供了一些相关的工具集,帮助开发人员和企业更加便捷地使用模板引擎。 总而言之,org.apache.velocity是一个强大、灵活且易于使用的模板引擎,拥有广泛的应用场景,在Java Web开发和企业级应用中体现出极高的价值。 ### 回答3: org.apache.velocity是一个基于Java的开源模板引擎,常用于Web应用程序中生成HTML页面、电子邮件、XML文档、源代码等各种文本格式。该项目由Apache软件基金会开发和提供支持,属于Apache软件基金会的下属项目之一。 org.apache.velocity使用简单明了的语法规则来定义模板,支持变量替换、条件判断、循环、函数调用等基本模板功能,同时也支持自定义指令和宏定义,能够满足复杂模板的设计需求。 该模板引擎运行时会将模板解析成内部数据结构,然后通过与数据源交互来生成所需的输出。org.apache.velocity支持多种数据源,包括Java对象、数据库查询结果、XML文件等。 除了基本模板功能外,org.apache.velocity还提供了一些高级特性,例如Velocity Tools,它是一个可选的Velocity工具集,提供了一些常用的工具和组件来简化Velocity应用程序的开发。此外,org.apache.velocity还支持Velocity日志、定时器和错误处理等特性,为Velocity应用程序提供了更好的可维护性和可靠性。 总之,org.apache.velocity是一个强大而灵活的模板引擎,适用于各种规模的Web应用程序。它具有易用性、可扩展性和高性能的优点,为Web开发人员提供了一个快速开发高质量模板的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值