spring mvc+velocity 打成war(war不解压)发布

阅读更多

最近在学习velocity。搞了个简单的mvc,然后打成war包发布,然后我的tomcat是不解压war包的,也就是说在webapps文件夹里面,war包不解压成文件夹格式。

spring mvc+velocity 打成war(war不解压)发布_第1张图片

 

然后运行我的webapp的时候,报错了,报找不到我的velocity资源文件,找了下网上的资料,发现我的velocity的ResourceLoader配置的是FileResourceLoader,这种resourceLoader是读文件目录的,也就是说,不解压war的话,那就是读取不到资源,如果tomcat设置了不解压war,那就会报错,如果是解压的war包,那就没问题。

如果是直接以不解压的war包进行发布的话,需要用另外一个resourceLoader, 也就是org.apache.velocity.tools.view.WebappResourceLoader

但这个resourceLoader需要配置servletContext,刚开始我运行的项目的时候,总是报没有设置servletContex,于是我反编译了下spring-webmvc.jar,发现spring2.0版本的jar的VelocityConfigurer是没有继承ServletContextAware这个接口的,我在网上也找了下资料,也说只有spring 2.5.6后面的版本才有,于是我现在

2.5.6的jar试了下,嗯,确实OK了

我的velocity的配置:


   
       
   

   
       
       
       
       
       
       
       
       
       
       
            text/html;charset=UTF-8
       

       
   

   

---------------------------------------------------------------------------------------------

velocity.properties

 

input.encoding=UTF-8
output.encoding=UTF-8
#resource.loader=file
#file.resource.loader.class=org.apache.velocity.runtime.resource.loader.FileResourceLoader
#webapp.resource.loader.cache=false
resource.loader=webapp
webapp.resource.loader.class=org.apache.velocity.tools.view.WebappResourceLoader
webapp.resource.loader.path=/WEB-INF/velocity/
webapp.resource.loader.cache=false
velocimacro.library=macros/pageNavigationDetail.vm,macros/pageNavigation.vm,macros/errorMacro.vm
directive.parse.max.depth=5
velocimacro.permissions.allow.inline=true
velocimacro.permissions.allow.inline.to.replace.global=false
velocimacro.permissions.allow.inline.local.scope=true
velocimacro.context.localscope=true

 

 

相关jar包见附件

 

 

 

 

  • spring mvc+velocity 打成war(war不解压)发布_第2张图片
  • 大小: 18.9 KB
  • spring mvc+velocity 打成war(war不解压)发布_第3张图片
  • 大小: 17.3 KB
  • spring-webmvc.jar (392.9 KB)
  • 下载次数: 1
  • spring.jar (2.8 MB)
  • 下载次数: 1
  • velocity.jar (382.9 KB)
  • 下载次数: 1
  • velocity-tools-2.0.jar (338.5 KB)
  • 下载次数: 0
  • 查看图片附件

你可能感兴趣的:(springmvc,velocity,war)