В нашем Приложении мы получаем исключение View Expired, когда возвращаемся из диалога со многими (~ 40) полями ввода.
Я протестировал его и получил то же исключение на витрине простых лиц.
Шаги для воспроизведения:
- перейдите на https://www.primefaces.org/showcase/ui/df/nested.xhtml
- нажмите «Вид», затем «перейти на уровень 2», затем нажмите на x, затем нажмите «перейти на уровень»2 снова ", повторите этот процесс примерно 40 раз, затем попытайтесь перейти на уровень 3
, вы будете перенаправлены на https://www.primefaces.org/showcase/viewExpired.xhtml
Я предполагаю, что это исключение происходитпотому что сайт, на который возвращалось бы диалоговое окно, больше не доступен, потому что только 15 состояний просмотра сохраняются.
Когда я увеличиваю параметр
org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION в web.xml
до 200 Я больше не получаю исключение.
Есть ли способ избежать этого исключения без увеличения параметра, потому что мы не хотим тратить ресурсы.
Мытакже пробовал javax.faces.STATE_SAVING_METHOD = клиент, и это сработало, но затем сетевой трафик увеличился в 10 раз (2 МБ на каждый запрос)
РЕДАКТИРОВАТЬ У меня есть столбец суммы и цифры в моемполя ввода всегда должны иметь две десятичные цифры, поэтому мои поля ввода выглядят так:
<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>