Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 弹簧&x2B;Velocity Webapp资源加载_Spring_Velocity - Fatal编程技术网

Spring 弹簧&x2B;Velocity Webapp资源加载

Spring 弹簧&x2B;Velocity Webapp资源加载,spring,velocity,Spring,Velocity,这真的很痛苦。我正在尝试将Spring配置为使用Velocity模板发送电子邮件。以下内容在我的场景中是不可接受的 将模板放入Jar中,并将其添加到类路径中 将模板放入WEB-INF/classes或WEB-INF/lib 我将Spring3.1.3与Tomcat6.x一起使用 问题是很多人都遇到了“org.apache.velocity.exception.ResourceNotFoundException:找不到资源‘emailBody.vm’”的问题 如果模板文件位于WEB-INF/tem

这真的很痛苦。我正在尝试将Spring配置为使用Velocity模板发送电子邮件。以下内容在我的场景中是不可接受的

  • 将模板放入Jar中,并将其添加到类路径中
  • 将模板放入WEB-INF/classes或WEB-INF/lib
  • 我将Spring3.1.3与Tomcat6.x一起使用

    问题是很多人都遇到了“org.apache.velocity.exception.ResourceNotFoundException:找不到资源‘emailBody.vm’”的问题

    如果模板文件位于WEB-INF/templates文件夹中,是否有人可以列出.xml和.java文件中要使用的正确值。对于像我这样的spring开发新手来说,这将是一个很大的帮助。这上面有100个QN,但它们指的是spring和velocity的多个版本

    我尝试的一种方法是在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>        
    
    我也试着用编程的方式

       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/");
    

    你是如何引用它们的?@Sotirios我尝试了很多方法,但不确定正确的方法是什么。@Sotirios Delimanolis我将更新问题解压缩你的jar并检查模板是否在根文件夹或嵌套文件夹中。您可能必须引用完整路径。jar应该只在
    WEB-INF/lib
    @SotiriosDelimanolis抱歉Sotirios what.jar中。正如我提到的,在我的场景中,向jar中添加模板是不可接受的。我想让最终用户根据自己的需求更改模板文件,而他们不懂java来提取或创建jar文件。
       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/");