2016-06-30 9 views
0

Ich verwende Spring Web-Flow 2.4.0 und PrimeFaces 5.0. Ich habe festgestellt, dass bei einem Fehler bei der Validierung von Front-End-Oberflächen, z. Zahlenformat. Es werden einige korrekte Werte ausgelöst, die in derselben Formular-ID verloren gehen. Es hat keine Funktion im Web-Flow ausgelöst und ich habe diesen korrekten Werten keine Nullwerte zugewiesen.Front-End-Validierung fehlgeschlagen, die den Verlust des korrekten Werts verursacht

Ich habe versucht zu lösen, aber gescheitert. Hast du irgendwelche Hinweise oder Lösungen ?? Bitte helfen Sie.

Hinweis: Es passierte in selectmanycheckbox mit selectedvalue, dass der itemsdisable wahr ist. Wenn ich das itemDisabled .... -Attribut entferne, wird es kein Problem haben. Aber das Kontrollkästchen ist aktiviert.

// --------------------- --- POPUP Formular mit TabView ------------------ //

<p:dialog id="dialogEsscp2s3" widgetVar="dialogEsscp2s3" width="70vw" 
    rendered="true" modal="true" draggable="true" position="center" 
     resizable="false" header="#{esLabel['lbl.esscp2s1']}" closeOnEscape="true" 
     onHide="PF('dialogEsscp2s3').content.empty();closePopUp()"> 
     <p:remoteCommand id="closePopUp" name="closePopUp" action="cancel" process="@this" /> 

     <p:outputPanel id="panelEsscp2s3" rendered="false" > 

      <p:scrollPanel mode="native" style="height: 600px;">    
      <p:messages escape="false" id="dialogMessages" showDetail="false" autoUpdate="true" closable="true" /> 
      <p:tabView id="tabView2s3" styleClass="ui-edb-noneborder-grid" activeIndex="#{activeTabViewIndex}" style="border:none"> 
       <p:tab id="tab2s3a1" title="#{esLabel['lbl.esscp2s3.lbl.Course']}" disabled="#{disableFirstTab}"> 

        ....................... 
       </p:tab> 
       <p:tab id="tab2s3a2" title="#{esLabel['lbl.esscp2s3.lbl.Participants']}" disabled="#{disableSecondTab}"> 

         <ui:include src="esscp2s4-popup-participants.xhtml"/> 
        <!-- here has the <p:selectManyCheckbox/> controls --> 
       </p:tab> 
      </p:tabView> 

      </p:scrollPanel> 
     </p:outputPanel> 
</p:dialog> 

Antwort

0

ich durch bewegen Frontend Validierung an den Backend-Controller Validierung das Problem gelöst haben. und verwenden Sie den folgenden Code, wenn die Validierung die korrekten Werte nicht zuordnen konnte.

if(isinvalid){ 
      dtWebVoEsccp2s3.setInvalid(true); 
dtWebVoEsccp2s3.getAttendantList().getSelectTeachers().setSelectedValue(selectedValue); 
     context.getFlowScope().put("teacherList", dtWebVoEsccp2s3.getAttendantList()); 
      return false; 
     }