Я создал простой проект crud jsf. Моя страница содержит dataTable и заполняется базой данных. Иногда моя программа не запускается, особенно после 3 или 4 запросов. Например, я обнаружил сценарий, подобный следующему: вызвать мой selectOneMenu несколько раз (пример: 13-14 раз). Я видел, что экран консоли DevTools выдает ошибку
<p:selectOneMenu id=studentNo"
value="#{myBean.studentNo}" style="width:150px">
<p:ajax listener="#{myBean.onStudentChange}"
update=":formTabInvoiceList:tabViewInvoiceList:StudensList:table-wrapper"/>
<f:selectItem itemLabel="Choose student number" itemValue="#{null}" noSelectionOption="true" />
<f:selectItems value="#{myBean.studentNumbersList}" />
</p:selectOneMenu>
Ошибка:
<partial-response>
<error>
<error-name>
javax.faces.application.ViewExpiredException
</error-name>
<error-message>
/xhtml/pages/Invoice.xhtmlNo saved view state could be found for the view identifier:
/xhtml/pages/Invoice.xhtml
</error-message>
</error>
</partial-response>
Я нашел эту ошибку на вкладке сети DevTools Я поймал эту ошибку еще один повторяющийся сценарий ios в моей программе.
Я погуглил его и нашел некоторые решения, но не решил. Мой веб-файл. xml содержит
<context-param>
<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
<param-value>false</param-value>
.
Также я проверяю все компоненты в моем файле x html, чтобы найти компоненты с одинаковым идентификатором. Все компоненты имеют разные идентификаторы.
Моя версия PrimeFace: 3.4.1
myFaces: 2.1.10
У вас есть идеи?
мой веб. xml файл это:
<context-param>
<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value>
</context-param>
<context-param>
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
<param-value>1</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>