【问题标题】:Spring MVC with Thymeleaf. Update static data带有 Thymeleaf 的 Spring MVC。更新静态数据
【发布时间】:2023-11-07 17:55:02
【问题描述】:

我正在使用带有 Thymeleaf 和 Tomcat 的 Spring MVC,我希望能够在不重新部署的情况下更新静态数据(html 页面)。 在我的应用程序中,html 是由 Spring 控制器映射的。 即使是 JRebel 也无济于事。它很好地更新了 java 类,但对视图没有任何作用。 我应该怎么做才能解决这个问题?也许对于 html,我需要一些像 Jasper for JSP 这样的监听器机制,或者我应该为 Spring 控制器禁用一些缓存?..

【问题讨论】:

    标签: tomcat spring-mvc thymeleaf


    【解决方案1】:

    这实际上是 Thymeleaf 问题。 我只需要禁用模板解析器的缓存,默认情况下它是开启的。

    <bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
        <property name="prefix" value="/" /> 
        <property name="suffix" value=".html" /> 
        <property name="templateMode" value="HTML5" /> 
        <property name="cacheable" value="false"/>
    </bean>
    

    【讨论】:

    • 我一直在寻找那个线索。谢谢你,马克西姆!很有帮助。
    • 我设置了这个设置,但我的页面仍然被缓存,即使我重新启动服务器。
    • 知道为什么会这样吗?
    • 如果服务器重启在不是 Thymeleaf 问题的情况下没有帮助。它可能是浏览器的缓存。尝试使用Ctrl+F5 重新加载页面。如果有帮助,那么其中一个解决方案可能对您有帮助:*.com/a/2068407/1430055*.com/a/1341133/1430055
    • 在 java 配置中:yourTemplateResolver.setCacheable(false);