如何正确设置加载速度路径

时间:2011-03-17 17:16:55

标签: spring spring-mvc velocity

我希望我的velocityengine从设计路径中寻找模板。 我这样做了:

<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
 <property name="velocityProperties">
   <value>
     resource.loader=class
     class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
     class.resource.loader.resourceLoaderPath=/mytemplates
   </value>
 </property>

但仍在类文件夹中查找模板。 任何想法?

3 个答案:

答案 0 :(得分:22)

如春季documentation所示,您可以尝试以下方法:

<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
  <property name="velocityProperties">
    <props>
      <prop key="resource.loader">file</prop>
      <prop key="file.resource.loader.class">
        org.apache.velocity.runtime.resource.loader.FileResourceLoader
      </prop>
      <prop key="file.resource.loader.path">${webapp.root}/WEB-INF/velocity</prop>
      <prop key="file.resource.loader.cache">false</prop>
    </props>
  </property>
</bean>

或者,您可以在velocity.properties中声明这些属性并指定

<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
  <property name="configLocation" value="/WEB-INF/velocity.properties"/>
</bean>

答案 1 :(得分:17)

试试这个:

<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
    <property name="resourceLoaderPath" value="/email_templates/"/>
</bean>

<bean name="mailTest" class="com.crisil.web.MailTestController">
    <property name="velocityEngine" ref="velocityEngine"/>
</bean>

答案 2 :(得分:0)

尝试使用Resource Loader

org.apache.velocity.runtime.resource.loader.FileResourceLoader

希望这有帮助。