FACELETS_BUFFER_SIZE 的意义?

Kis*_*ash 6 jsf primefaces

我正在使用 Mojarra 2.1.13 和 Primefaces 3.5 开发一个相当大的 JSF 应用程序。最近我遇到了java.lang.IllegalStateException: Cannot create a session after the response has been committed异常的问题。我FACELETS_BUFFER_SIZE通过context-param在我的web.xml. 尽管我不再得到那个例外,但我对此有一些疑问:

  1. FACELETS_BUFFER_SIZEJSF 应用程序中的设置有多重要?
  2. 它是否会影响应用程序的性能(我想避免任何
    与此相关的意外/问题)在性能方面是否有任何优点和缺点?
  3. 如果它设置为比我的应用程序的
    要求多/少会发生什么?
  4. 如何找到最FACELETS_BUFFER_SIZE 适合我的应用?

Sir*_*hog 4

FACELETS_BUFFER_SIZE表示缓冲区(在我们的例子中是一个表单)可以容纳的最大字节数。PROJECT_STAGE仅当设置为Development时,才需要在 web.xml 中设置。

PROJECT_STAGE设置为Production时,无需设置FACELETS_BUFFER_SIZE,可以保留默认设置 (-1)。在开发过程FACELETS_BUFFER_SIZE中设置while可以防止数据丢失或错误,无法正确记录甚至根本无法记录。

将此参数设置为Development可以提供更好的错误消息(包括在客户端 JavaScript 中),但会牺牲一些性能。

当将此参数设置为Production时,将关闭一些错误消息,并强调性能。

FACELETS_BUFFER_SIZEwhilePROJECT_STAGE设置为Development时设置的值(字节)应高于最重页面的最大大小。您可以看到,如果您在 Firefox 中打开应用程序,右键单击空白区域并单击“查看页面信息”,则会显示当前页面大小。