2016-06-30 17 views
0

私はspring web flow 2.4.0とprimefaces 5.0を使用しています。私は、フロントエンドのプライム・サーフェスに障害が発生したとき、それがわかった。数字形式。同じフォームIDで失われたいくつかの正しい値がトリガーされます。 Webフローでは何の機能も起動せず、これらの正しい値にnull値を割り当てていません。フロントエンドの検証に失敗し、正しい値が失われました。

私は解決しようとしましたが失敗しました。ヒントや解決策はありますか?助けてください。

注:selectmanycheckboxでは、itemsdisableがtrueであることがselectedvalueで発生しました。私はitemDisabled ....属性を削除した場合、それは問題はありませんが、チェックボックスが

<p:panelGrid columns="1" > 
    <p:selectManyCheckbox layout="grid" id="gridTeacherName" 
      value="#{teacherList.selectTeachers.selectedValue}" >  
     <f:selectItems itemLabelEscaped="false" 
      value="#{teacherList.selectTeachers.filterTeacherNameList}" 
      var="teacher" 
      itemDisabled= 
      "#teacherList.selectTeachers.disableCheckBox(teacher.timRefNo)}" 
       itemLabel="#{teacher.getisServingMoreThanOneSchool()}" 
      itemValue="# {teacher.timRefNo}" /> 
    </p:selectManyCheckbox> 
</p:panelGrid> 

// ---------------------を有効になっています--- taboveフォームwith 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> 

答えて

0

私はフロントエンドの検証をバックエンドコントローラの検証に移すことで問題を解決しました。検証で正しい値を再割り当てできなかった場合は、以下のコードを使用してください。

if(isinvalid){ 
      dtWebVoEsccp2s3.setInvalid(true); 
dtWebVoEsccp2s3.getAttendantList().getSelectTeachers().setSelectedValue(selectedValue); 
     context.getFlowScope().put("teacherList", dtWebVoEsccp2s3.getAttendantList()); 
      return false; 
     } 
関連する問題