在 JSF 应用程序中,参数 javax.faces.FACELETS_REFRESH_PERIOD 可用于启用/禁用 XHTML 文件的自动重新加载。
我目前正在研究生产部署的正确配置,并意外发现我们目前即使在生产中也以 FACELETS_REFRESH_PERIOD=1 运行,这显然不是一个好主意。
这就引出了一个问题:这个参数的默认值是多少?
理想情况下,为了简单起见,我想从我们的生产配置中省略 FACELETS_REFRESH_PERIOD,并希望它使用“安全”默认值 -1。然而,情况似乎并非如此,因为如果没有该参数,刷新似乎已启用(Mojarra 和 MyFaces 均适用)。
我检查了 JSF 规范,虽然它描述了该参数,但它没有给出默认值。这是规范中故意遗漏的吗?
默认值取决于实现。
com.sun.faces.config.WebConfiguration
类中找到默认值:
768 FaceletsDefaultRefreshPeriod(
769 "javax.faces.FACELETS_REFRESH_PERIOD",
770 "2"
771 )
(行号来自 Mojarra 2.0.0)
默认值为
2
。我在任何 Mojarra 文档中都找不到这个。可能值得向 Mojarra 人员发布问题报告以更好地记录它。
MyFaces 根据 其文档 还有一个默认值
2
。
更新:从 Mojarra 2.2.11 开始,如果项目阶段为
-1
,则默认值设置为 Production
。另请参阅问题 3788。