对话框展示中的Primefaces View过期异常

时间:2018-11-19 10:52:28

标签: jsf primefaces dialog viewexpiredexception

在我们的应用程序中,当从具有许多(〜40)输入字段的对话框中返回时,我们会收到View Expired Exception。

我对其进行了测试,并且在primefaces展示柜中遇到了相同的例外情况。

复制步骤:

  1. 转到https://www.primefaces.org/showcase/ui/df/nested.xhtml
  2. 单击“查看”,然后“转到第2级”,然后单击x,然后单击“再次转到第2级”,重复此过程约40次,然后尝试转到第3级

您将被重定向到https://www.primefaces.org/showcase/viewExpired.xhtml

我认为发生此异常是因为对话框将返回的站点不再可用,因为仅保存了15个视图状态。

当我增加参数

web.xml中的

org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION

到200,我不再遇到异常。

有没有一种方法可以避免这种异常而不增加参数,因为我们不想浪费资源。

我们还尝试了javax.faces.STATE_SAVING_METHOD = client,它可以正常工作,但是随后,网络流量却增加了10倍(每个请求2MB)

编辑 我有一个总和列,并且输入字段中的数字应该始终有两位十进制数字,因此我的输入字段看起来像这样。

<p:inputText style="text-align:right;"
    rendered="#{attval.att.ac.catForNumericalData}"
    size="#{attval.att.inputlength}" value="#{attval.att.quantity}">
    <f:converter converterId="com.prosol.faces.converter.DoubleConverter" />
    <p:ajax event="keyup" update="attributeTable" delay="1000"/>
</p:inputText>

0 个答案:

没有答案