我正在使用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来清除它。尽管我不再遇到这种异常(exception)情况,但我对此仍有一些疑问:

  • JSF应用程序中的FACELETS_BUFFER_SIZE设置有多重要?
  • 是否会影响应用程序的性能(我想避免任何
    对此有惊喜/问题)性能方面是否有优点和缺点?
  • 如果将其设置为大于/小于我的应用程序的大小,会发生什么
    要求?
  • 如何找到最佳的FACELETS_BUFFER_SIZE为我的应用程序?
  • 最佳答案

    FACELETS_BUFFER_SIZE表示缓冲区(例如本例中的表单)可以达到的最大字节数。仅当PROJECT_STAGE设置为开发时,才需要在web.xml中进行设置。

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

    将此参数设置为。开发会以更好的性能为代价,提供更好的错误消息,包括在客户端JavaScript中。

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

    FACELETS_BUFFER_SIZE设置为时,在PROJECT_STAGE中设置的值(字节)应大于最重页面的最大大小。您可以看到,如果您在firefox中打开应用程序,请在空白处单击鼠标右键,然后单击“查看页面信息”,此处显示当前页面大小。

    关于jsf - 是否有FACELETS_BUFFER_SIZE的意义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28939030/

    10-08 22:14
    查看更多