。xhtml文件中的更改未反映在浏览器中,需要重新启动和构建

问题描述 投票:4回答:3

如果我在.xhtml文件中进行更改,则更改不会反映在浏览器的屏幕上。为了使其正常工作,我必须每次都重新启动服务器。对我来说,这似乎很麻烦。

我在web.xml中添加了以下上下文参数:

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

但是,它们没有任何作用。

我的技术栈在下面列出:

  • SWF 2.3.0
  • Primefaces 2.2.1
  • JSF 2
  • Spring Security 3
  • 春季3.1.0M1I
  • EhCache
  • Apache Tomcat 6.0
  • STS 2.5.1。
eclipse tomcat jsf-2 facelets
3个回答
6
投票

如果使用的是IDE,则还必须配置IDE才能立即将更改发布到服务器。否则,在服务器上运行的webapp将不会获得这些更改的任何概念。

[当您使用的STS基本上是Eclipse for Java EE时,预装了许多Spring特定的插件,我认为给出以Eclipse为目标的通用答案是足够的。

在Eclipse中,您只需要双击服务器视图中的服务器条目,然后编辑发布部分以设置当资源更改时自动发布,并将发布间隔设置得尽可能短。 。甚至可能是0秒。


<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9iZVZYQy5wbmcifQ==” alt =“在此处输入图像描述”>


javax.faces.FACELETS_REFRESH_PERIOD仅适用于webapp上下文中的文件。您只需要确保IDE尽快将更改发布到webapp上下文即可。


0
投票

[我花了几个小时才发现,在应用程序antiResourceLocking="true"中将<Context>作为属性添加到context.xml元素会在Tomcat 7中引起相同的问题:Facelet文件中的更改未获取;需要重新部署。

删除antiResourceLocking="true"或将其更改为antiResourceLocking="false"使Tomcat在开发项目阶段按预期工作。


0
投票

您应该在web.xml中添加这些行,以便每当您的.xhtml代码发生更改时,它就会刷新。

<!--     JSF 2 (Facelets 2.x) -->
    <context-param>
        <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
        <param-value>0</param-value>
    </context-param>

    <!-- Set the project stage to "Development", "UnitTest", "SystemTest", or "Production". -->
<!-- An optional parameter that makes troubleshooting errors much easier. -->
<!-- You should remove this context parameter before deploying to production! -->
        <context-param>
            <param-name>javax.faces.PROJECT_STAGE</param-name>
            <param-value>Development</param-value>
        </context-param>

    <!--For JSF 1.2 (Facelets 1.x) parameters are  -->
    <context-param>
    <param-name>facelets.REFRESH_PERIOD</param-name>
    <param-value>0</param-value>
</context-param>
<context-param>
    <param-name>facelets.DEVELOPMENT</param-name>
    <param-value>true</param-value>
</context-param>
© www.soinside.com 2019 - 2024. All rights reserved.