我在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
展开
 我来答
jeffsui
2010-11-25 · TA获得超过606个赞
知道小有建树答主
回答量:737
采纳率:50%
帮助的人:303万
展开全部
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文件。
vqusu66
2010-11-26 · TA获得超过312个赞
知道小有建树答主
回答量:537
采纳率:100%
帮助的人:377万
展开全部
如果情况是你现在这样:

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:盘符,所以不可能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式