我在Struts的action中调用velocity的vm模版时,一直找不到vm文件
我在Struts的action中调用velocity的vm模版,总是出现org.apache.velocity.exception.ResourceNotFoundExc...
我在Struts的action中调用velocity的vm模版,总是出现org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'test.vm',路径怎么写都找不到,但是在类里面测试就没问题,代码如下: try {
Velocity.init();
Template t = Velocity.getTemplate("test.vm", "GB2312");
VelocityContext ctx = new VelocityContext();
ctx.put("bqcontent", "你号测试。。。。");
// Writer writer = new StringWriter();
PrintWriter dw = new PrintWriter("F:\\20090826164111.html");
t.merge(ctx, dw);
dw.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我用的是struts1.2 展开
Velocity.init();
Template t = Velocity.getTemplate("test.vm", "GB2312");
VelocityContext ctx = new VelocityContext();
ctx.put("bqcontent", "你号测试。。。。");
// Writer writer = new StringWriter();
PrintWriter dw = new PrintWriter("F:\\20090826164111.html");
t.merge(ctx, dw);
dw.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我用的是struts1.2 展开
2个回答
展开全部
struts2的velocity引擎一般会以web根路径作为vm默认查找路径。如:#parse("/xx.vm"),则会到实际运行的web根目录下查找该文件。如果想增加外面的vm模板引用,则必须要更改velocity配置文件。
在velocity.peroperties中增加选项:
resource.loader=strutsfile, strutsclass, file
file.resource.loader.path=/home/vm
其中,resource.loader表示定义了velocity资源装载的方式。struts2中默认为strutsfile和strutsclass,需要增加:file
并且还要增加查找地址:file.resource.loader.path,这个选项指定了.vm文件存放地址。
这样配置后,velocity模板引擎会按照定义的先后顺序查找.vm文件。
在velocity.peroperties中增加选项:
resource.loader=strutsfile, strutsclass, file
file.resource.loader.path=/home/vm
其中,resource.loader表示定义了velocity资源装载的方式。struts2中默认为strutsfile和strutsclass,需要增加:file
并且还要增加查找地址:file.resource.loader.path,这个选项指定了.vm文件存放地址。
这样配置后,velocity模板引擎会按照定义的先后顺序查找.vm文件。
展开全部
如果情况是你现在这样:
template = this.getTemplate("welcome.vm");
welcome.vm放到你的项目根目录,也就是x:/tomcat/webapps/yourProject/welcome.vm
如果是:
template = this.getTemplate("/abc/welcome.vm");
welcome.vm放到你的项目的位置是x:/tomcat/webapps/yourProject/abc/welcome.vm.
难道你用:
template = this.getTemplate("D:/workaround/Tomcat5.0/webapps/ejoy/vm/list.vm");
那在你的工程目录下就要有个 D:/workaround/Tomcat5.0/webapps/ejoy/vm/list.vm目录,不过有d:盘符,所以不可能
template = this.getTemplate("welcome.vm");
welcome.vm放到你的项目根目录,也就是x:/tomcat/webapps/yourProject/welcome.vm
如果是:
template = this.getTemplate("/abc/welcome.vm");
welcome.vm放到你的项目的位置是x:/tomcat/webapps/yourProject/abc/welcome.vm.
难道你用:
template = this.getTemplate("D:/workaround/Tomcat5.0/webapps/ejoy/vm/list.vm");
那在你的工程目录下就要有个 D:/workaround/Tomcat5.0/webapps/ejoy/vm/list.vm目录,不过有d:盘符,所以不可能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询