通过阅读源码搞定了
- 先查看web.xml的缓存控制。这是最高优先级的缓存控制,如果开了缓存,生成的页面就会缓存在tomcat里。
- 再设置springmvc的缓存控制。一旦springmvc发现没有缓存开启,就会进行cache,如果发现缓存没开启,则会每次生成一个view(通过调用freemarker的方法来进行)。
- 再设置freemakre的缓存控制。freemakre通过一个时间长度来控制缓存
- 在上面两步完成之后,一般来说就可以了。但是还有一个问题是,web访问的是target目录下的classpath和WEB-INFO目录,而我们开发环境修改的模板文件不是target目录下。这就要求IntelliJ要有热部署功能,也就是在修改文件后,能自动更新target目录下的文件数据。
web.xml 缓存
如果web.xml里面存在类似下面的代码,就要把它注释掉,否则修改freemarker页面再刷新浏览器是不会生效的。如果没有这段代码,自信忽略。
<filter>