从JSF获取警告:当我们尝试为闪存设置传出cookie时,响应已经提交

Mat*_*ari 15 cookies jsf jsf-2 flash-scope

我有一个page1.jsf,在这个页面中我有一个commandButton,它将一个对象放在ELFlash中,并重定向到page2.jsf.在这个页面中,我通过ELFlash恢复对象.一切正常.但是当用户保留在page2.jsf中时,对于每个ajax请求,tomcat都会显示以下警告消息:

20/07/2013 09:43:37 com.sun.faces.context.flash.ELFlash setCookie
WARNING: JSF1095: The response was already committed by the time we tried to set the outgoing cookie for the flash.  Any values stored to the flash will not be available on the next request.
Run Code Online (Sandbox Code Playgroud)

它到底意味着什么?

laz*_*lev 8

而不是使用@Rafal K答案中提到的过滤器,您还可以通过在您的设置中设置上下文参数来增加响应缓冲区大小 web.xml

<!-- increase buffer size to avoid JSF1095 errors -->
<context-param>
    <param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name>
    <param-value>131072</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

大小以字节为单位,应大于最大页面.您可以通过右键单击并选择,轻松检查Firefox中页面的大小View Page Info.


LMG*_*LMG -1

Flash 正如其名称所示,是 jsf 生命周期之间的一种临时容器概念。要点如下:存储在 flash 中的对象将在用户即将遇到的下一个视图中提升给用户(记住 jsf 遵循 mvc),因此在“使用”后它将消失,即被删除。

我认为这就是为什么你会得到这样的错误,这与 mojarra 没有直接关系。