首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web开发 >

velocity的一个小疑点,大家帮看看哇

2012-08-07 
velocity的一个小问题,大家帮看看哇直接贴代码吧。我在myeclipse下面新建了一个web项目,我的java代码是这样

velocity的一个小问题,大家帮看看哇
直接贴代码吧。我在myeclipse下面新建了一个web项目,我的java代码是这样的。

Java code
package template;import java.io.StringWriter;import org.apache.velocity.Template;import org.apache.velocity.VelocityContext;import org.apache.velocity.app.VelocityEngine;public class HelloVelocity {    public static void main(String[] args) {        VelocityEngine ve=new VelocityEngine();        //初始化velocity模板引擎        ve.init();        Template template=ve.getTemplate("hellovelocity.vm");        //创建上下文,填充数据        VelocityContext context=new VelocityContext();        context.put("name", "world");        StringWriter writer=new StringWriter();        template.merge(context, writer);        System.out.println(writer.toString());            }    }

和这个java类相同的包下面有一个velcity模板文件hellovelocity.vm,代码如下:
Java code
Hello $name, this is Velocity working! 

将两个jar包也导入了,分别是velocity-1.7.jar和velocity-1.7-dep.jar
但是运行的时候,总是报这个错误。如下所示:
Java code
2012-7-11 22:03:03 org.apache.velocity.runtime.log.JdkLogChute log严重: ResourceManager : unable to find resource 'hellovelocity.vm' in any resource loader.Exception in thread "main" org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'hellovelocity.vm'    at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:474)    at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:352)    at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533)    at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1514)    at org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:373)    at template.HelloVelocity.main(HelloVelocity.java:15)

总是提示找不到资源文件。很郁闷,明明是放在同一个包下面的。不知道什么原因啊,请遇到过类似问题的大虾赐教啊!



[解决办法]
Template template=ve.getTemplate("hellovelocity.vm");
路径是错误的吧?你可以改用绝对路径测试
Template template=ve.getTemplate("d:\\hellovelocity.vm");
[解决办法]
通过下面这种方式获取资源文件吧,设置一些属性值。
Java code
Properties p = new Properties();p.setProperty("resource.loader", "class");p.setProperty("class.resource.loader.class","org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");//设置资源加载器器为ClasspathResourceLoader,这段可以写到配置文件中...VelocityEngine ve = new VelocityEngine();ve.init(p);template = ve.getTemplate("/templates/hello.vm"); 

热点排行