Обновления, не отраженные при отправке формы

#jsf-2 #primefaces

#jsf-2 #первичные

Вопрос:

Я использую простые лица.

На стороне Java у меня есть ModelView. В ModelView есть список модулей. Каждый модуль имеет список переменных.

.
.
.

        <h:form id="DynamicWebPageForm">
          <p:growl id="msgs" showDetail="true" />
          <h3>Dynamic Loading with Accordion Panel</h3>

          <p:outputLabel for="selectModule" value="Select Module: " />
          <p:selectOneMenu id="selectModule" value="#{modelView.selectModel}">
                 <p:ajax listener="#{modelView.onModelChange}" update="modulesAP" />
                 <f:selectItems value="#{modelView.modelselectItems}" />
          </p:selectOneMenu>

          <p:accordionPanel id="modulesAP" multiple="true" value="#{modelView.modules}" var="v1">
                 <p:tab id = "modulesTab" title="#{v1.name}: Rating - #{v1.rating}">
                       <p:dataTable styleClass="borderless" value="#{v1.moduleVariables}" var="c1">
                              <p:column>
                                     <p:row>
                                            <p:panelGrid columns="2" styleClass="borderlessPanelGrid">
                                                   <h:outputLabel styles="50%" value="#{c1.name}" />
                                                   <p:inputText styles="50%" value="#{c1.value}" />
                                            </p:panelGrid>
                                     </p:row>
                              </p:column>
                       </p:dataTable>
                       <p:commandButton value="Submit" update=":DynamicWebPageForm:msgs modulesTab modulesAP" actionListener="#{modelView.saveData}" process = ":DynamicWebPageForm" />
                 </p:tab>
          </p:accordionPanel>
   </h:form>
  

Любое обновление в inputText не отражается при отправке формы. В чем может быть проблема?

Ответ №1:

Установите cache="false" (и, возможно dynamic="true" ,) на вашем <p:accordionaPanel/>

accordionPanel по умолчанию cache="true" имеет значение (не понимаю, почему), что объясняет, почему вы видите устаревшие значения