配置Velocity以读取类路径之外的模板文件

时间:2012-09-30 00:32:17

标签: java spring templates velocity

我正在尝试将Velocity配置为从文件系统读取模板文件,而不是从类路径中读取它。如果我将velocityEngine配置为:

,我可以从类路径中读取模板文件
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean" 
          p:resourceLoaderPath="classpath:/com/myapp/test" 
          p:preferFileSystemAccess="false"/>  

将templatefile.vm放在com.myapp.test包中。

如何更改以上内容,以便我可以将模板文件放在文件系统中的任何位置并访问它。我尝试了这个,但它没有用。

<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean" 
          p:resourceLoaderPath="c:\home\users\me\app\templates" 
          p:preferFileSystemAccess="true"/> 

我试图谷歌看看我是否能找到解决方案,但大多数示例都是针对Spring MVC配置的。我使用的是独立的Spring应用程序。

由于

1 个答案:

答案 0 :(得分:2)

尝试使用file:指定文件名:

<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean" 
          p:resourceLoaderPath="file://c:\home\users\me\app\templates" 
          p:preferFileSystemAccess="true"/> 

这就是我认为应该有效的原因。根据{{​​3}},当您将PreferFileSystemAccess设置为true时,它会开始使用SpringResourceLoaderSpringResourceLoader非常多才多艺,这里是this document


nice overview也可能是相关的。