gpt4 book ai didi

jsf - JSF 页面中的 XHTML 代码修改在服务器重新启动之前不会反射(reflect)出来

转载 作者:行者123 更新时间:2023-12-05 03:15:45 25 4
gpt4 key购买 nike

我有一个带有 MyFaces 实现的 JSF 2.0 Web 应用程序。该应用程序在 Apache Tomcat 7 上运行。当我在运行或调试应用程序时对 xhtml 页面进行任何修改时,页面没有任何变化。我需要重新启动 tomcat 以测试即使是较小的 xhtml 修改。这会导致开发过程中的时间松散。

我猜这是一个 MyFaces 问题,因为当我将标准 JSF 实现从 Mojarra 切换到 MyFaces 时问题就开始了。如何解决这个问题?

最佳答案

MyFaces 使用与 Mojarra 不同的 Facelet 缓存算法,并且更加积极。您需要将 web.xml 中的 javax.faces.PROJECT_STAGE 上下文参数设置为 Development 以调低它。

<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>

更新:从 Mojarra 2.2.11 开始,它将表现相同。因此,同样在 Mojarra 上,您需要设置 Development 阶段以关闭 Facelet 缓存。或者,将 javax.faces.FACELETS_REFRESH_PERIOD 上下文参数显式设置为 0

<context-param>
<param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
<param-value>0</param-value>
</context-param>

0 的值表示“从不缓存”。 -1 等任何负值都表示“无限缓存”。 10 等任何正值表示缓存的秒数。

不要忘记为生产重新启用缓存。项目阶段更有用,因为它也可以通过 JNDI 而不是通过 web.xml 进行设置。

关于jsf - JSF 页面中的 XHTML 代码修改在服务器重新启动之前不会反射(reflect)出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12203657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com