这是一个真正的痛苦。我正在尝试配置Spring以将Velocity模板用于我们要发送的电子邮件。在我的场景中,以下是不可接受的。
我正在使用Spring 3.1.3和Tomcat 6.x。
问题是很多人遇到的是“org.apache.velocity.exception.ResourceNotFoundException:无法找到资源'emailBody.vm'”问题。
有人可以列出要在.xml和.java文件中使用的正确值,假设模板文件位于WEB-INF / templates文件夹中。对像我这样的新手开发者来说,这将是一个很好的帮助。这里有100多个qns,但它们指的是弹簧和速度的多个版本。
我试过的一种方法是在dispatcher.xml中添加一个bean,如下所示,并在java文件中引用它。
< bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean" >
< property name="velocityProperties">
< props>
< prop key="resource.loader">webapp</prop>
< prop key="webapp.resource.loader.class">org.apache.velocity.tools.view.WebappResourceLoader</prop>
< prop key="webapp.resource.loader.path">/WEB-INF/templates/</prop>
< /props>
< /property>
< /bean>
Java代码如下所示
String body = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "emailBody.vm", map);
我也尝试过编程方式,
velocityEngine.addProperty("resource.loader", "url");
velocityEngine.setProperty("url.resource.loader.class", "org.apache.velocity.runtime.resource.loader.URLResourceLoader");
velocityEngine.setProperty("url.resource.loader.root", "/WEB-INF/templates/");