前端验证失败,导致正确值丢失

时间:2016-06-30 04:09:37

标签: jsf primefaces

我正在使用spring web flow 2.4.0和primefaces 5.0。我发现当前端曲面验证失败时,例如数字格式。它将触发在同一表单id中丢失的一些正确值。它没有触发Web流中的任何功能,我没有为这些正确的值分配空值。

我一直试图解决但失败了。你有任何提示或解决方案吗?请帮忙。

注意:它发生在具有selectedvalue的selectmanycheckbox中,itemsdisable为true。如果我删除itemDisabled ....属性,它将没有问题但是启用了复选框

// ------------------------ POPUP Form with tabView ----------------- - //

<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>

1 个答案:

答案 0 :(得分:0)

我已经通过将前端验证移动到后端控制器验证来解决了这个问题。验证无法重新分配正确的值时使用以下代码。

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