首先说说freemarker热更新的问题。网上很多博客写的freemarker配置热更新用的属性文件配置
template_update_delay=0
,但我是写在xml里的,不知道这个应该配置在xml里的哪个地方。无赖之下只有翻看freemarker文档。
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/views/"/> <property name="freemarkerSettings"> <props> <prop key="template_update_delay">0</prop> <prop key="locale">zh_CN</prop> <prop key="url_escaping_charset">UTF-8</prop> <!--<prop key="incompatible_improvements">2.3.23</prop>--> <!--<prop key="template_exception_handler">rethrow</prop>--> <prop key="default_encoding">UTF-8</prop> </props> </property> </bean>
测试一把。发现不行,好吧。继续看文档。
"template_update_delay"
: Template update delay in seconds (not in milliseconds) if no unit is specified; see setTemplateUpdateDelayMilliseconds(long)
for more.
String value: Valid positive integer, optionally followed by a time unit (recommended). The default unit is seconds. It's strongly recommended to specify the unit for clarity, like in "500 ms" or "30 s". Supported units are: "s" (seconds), "ms" (milliseconds), "m" (minutes), "h" (hours). The whitespace between the unit and the number is optional. Units are only supported since 2.3.23.
“template_update_delay”:如果未指定单位,模板更新延迟(以秒为单位,而不是毫秒); 请参阅setTemplateUpdateDelayMilliseconds(long)了解更多。
字符串值:有效的正整数,可选后跟一个时间单位(推荐)。 默认单位为秒。 强烈建议指定单位以便清楚,例如“500 ms”或“30 s”。 支持的单位有:“s”(秒),“ms”(毫秒),“m”(分钟),“h”(小时)。 单位和数字之间的空格是可选的。 从2.3.23开始支持单位。
英文不佳,用软件一点点翻译的。
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/views/"/> <property name="freemarkerSettings"> <props> <prop key="template_update_delay">1ms</prop> <prop key="locale">zh_CN</prop> <prop key="url_escaping_charset">UTF-8</prop> <!--<prop key="incompatible_improvements">2.3.23</prop>--> <!--<prop key="template_exception_handler">rethrow</prop>--> <prop key="default_encoding">UTF-8</prop> </props> </property> </bean>
文档写的从2.3.23支持单位了。我就写成1ms。再次测试。发现在还是不成功。挫败啊。
对着电脑屏幕看了半天,突然好想明白了点什么。在idea生成的target目录下找到ftl模板。修改一下。刷新页面,成功了。之前一只都是修改的源文件,而不是tomcat上的ftl。唉,折腾了半天。记下来,希望自己以后不要在犯这样的错误。
转载于:https://blog.51cto.com/xtceetg/1907552