如果我在.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>
但是,它们没有任何作用。
我的技术栈在下面列出:
如果使用的是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上下文即可。
[我花了几个小时才发现,在应用程序antiResourceLocking="true"
中将<Context>
作为属性添加到context.xml
元素会在Tomcat 7中引起相同的问题:Facelet文件中的更改未获取;需要重新部署。
删除antiResourceLocking="true"
或将其更改为antiResourceLocking="false"
使Tomcat在开发项目阶段按预期工作。
您应该在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>