如何让myfaces-impl刷新文件更改?

时间:2011-05-09 04:34:04

标签: facelets myfaces

Facelets servlet有一个init-param facelets.REFRESH_PERIOD。但是,将其设置为特定值毫无意义。如果它太小,比如10秒,缓存将超时太快。如果它不是那么小,比如说5分钟,那么当我对xhtml文件进行小的改动时,我必须经常重启Web服务器。 10到300秒之间的值可能更好,但绝不是最好的。

我正在使用Apache myfaces-impl,我对Sun JSF RI知之甚少。 (Sun JSF RI在我们的项目中不起作用)所以,我不知道这个问题是否特定于Apache Myfaces?

那么,而不是指定REFRESH_PERIOD,我可以让myfaces-impl刷新那些被更改的文件吗?

(我想也许myfaces-impl没有得到文件的最后修改时间,因为它将文件解析为URL,并且URL没有最后修改时间属性,是吗?或者我应该有修补myfaces-impl自己?)

1 个答案:

答案 0 :(得分:0)

查看MyFaces Web Config Params

javax.faces.FACELETS_REFRESH_PERIOD是标准的参数名称。

此参数用于重建视图的开发时间,因此您可以更改页面并动态检查更改。您不需要在生产中设置它。尝试将其设置为-1并禁用它。这是按预期工作的,因为实际上来自原始facelets代码,这对于两个jsf实现都是通用的。众所周知,像Google Application Engine(GAE)这样的环境不允许获取文件的最后修改时间,但我不相信这是你的情况。