使用 JRebel 重新加载 JSF 更改

Reload JSF changes with JRebel

虽然我的项目JRebel可以重新加载Javaclass修改,但是无法重新加载JSF修改.当我更改 JSF 文件时,我看不到任何日志等。 这是我的 rebel.xml:

<classpath>
    <dir name="${projectDir}/classes">
    </dir>
</classpath>

<web>
    <link target="/WEB-INF">
        <dir name="${projectDir}/war/conf">
        </dir>
    </link>
</web>

所有 JSF 文件都在 ${projectDir}/war/ 中。我使用 JBossIntelliJ IDEA。在项目中,Ant 创建一个 ear 文件并将其部署到 JBoss.

如何使用 JRebel 重新加载 JSF 文件rebel.xml 中的 web 标签应该指向 JSF 文件还是编译的 XHTML?

我也遇到过类似的问题,对我来说是参数javax.faces.FACELETS_REFRESH_PERIOD需要设置为0。参数设置在web.xml.

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

有一篇很好的博客文章 here 描述了不同的可用配置参数:

Time in seconds that facelets should be checked for changes since last request. When a page is requested, what interval in seconds should the compiler check for changes. If you don't want the compiler to check for changes once the page is compiled, then use a value of -1. Setting a low refresh period helps during development to be able to edit pages in a running application.

简而言之,在开发期间将值设置为 0 应该可以立即重新加载文件。