2012-12-11 3 views
1

jsf 2.1 + primefaces 3.4.1을 사용하고 있습니다. 비활성화 된 구성 요소의 유효성 검사를 방지하는 데 문제가 있습니다.primefaces가 유효하지 않은 구성 요소 유효성 확인

는 내가 가지고있는 것은 약이 :

<h:form id="form"> 
    <p:dataTable id="parentDataTable" value=#{bean.list} var="parentItem"..> 
     <p:column> 
      .. 
      <p:dataTable id="childDataTable" value=#{bean.map[parentItem]}" var="childItem"> 
       <p:column> 
        <f:facet name="header"> 
         some inputText 
        </f:facet> 
        <p:inputText id="inputText" 
         disabled=#{bean.selectedObjectsMap[childItem]} required="true" requiredMessage="value required" /> 
        <p:message for=":form:parentDataTable:childDataTable:inputText" /> 
       </p:column> 
       <p:column> 
        <f:facet name="header"> 
         Select 
        </f:facet> 
        <p:selectBooleanCheckbox id="checkBox" value="#{bean.selectedObjectsMap[childItem]}"> 
         <p:ajax update=":form:parentDataTable:childDataTable:inputText" /> 
        </p:selectBooleanCheckbox> 
       </p:column> 
      </p:dataTable> 
     </p:column> 
    </p:dataTable> 
</h:form> 

아이디어는 기본적으로 InputText]를 구성 요소가 비활성화되고 내가 양식을 제출하면 "필요한 값"검증이 작동하지 않습니다. selectBooleancheckbox 구성 요소를 클릭하면 inputText가 활성화되고 양식을 제출할 때 "필수 값"유효성 검사가 작동합니다. 그러나 inputText를 다시 비활성화하면 유효성 검사가 계속되고 "값 필요"메시지가 나타나고 양식을 제출할 수 없습니다. 시각적으로 inputText 컴포넌트가 체크 박스를 클릭 할 때마다 비활성화된다는 것을 볼 수 있지만, 체크 박스를 클릭하면 서버 측의 JSF UI 컴포넌트 트리가 제대로 업데이트되지 않는 것으로 보입니다.

어떻게 해결할 수 있습니까? 유효성 검사는이 샘플 코드에 표시된 것보다 더 복잡한 밤은 경우

답변

3

, 당신이 켜 및 장애인 속성에 사용하면 같은 콩 값이 필요한 속성을 바꾸는 의미

<p:inputText id="inputText" disabled="#{bean.selectedObjectsMap[childItem]}" required="#{!bean.selectedObjectsMap[childItem]}" requiredMessage="value required" /> 

를 사용하여 해제 코드, 단지를 추가 ! 당신이있는 명령에 패스 검증 작성자하려면

+0

하나 더 질문드립니다. 이 질문을보실 수 있습니다 : [link] (http://stackoverflow.com/questions/13740924/jsf-2-1-selectonelistbox-component-does-not-set-new-value) – Nurjan

0

당신은

<f:validator validatorId="EmailValidator" disabled="#{param['disableValidation']}" /> 

동적으로 활성화하고 양식 비활성화 이메일 검사기 구현할 수 있습니다.

<p:commandButton 
            icon="ui-icon-remove" id="removeBtn" 
            title="#{commonLbl.cmdRemoveCon}" 
            disabled="#{pc_searchProspectBean.searchProspectVO.prospectVO.removeContactFlg}" 
            styleClass="btn btn-sm btn-primary" 
            action="#{pc_searchProspectBean.doRemoveContact(prospectTbl.indexId)}" 
            update=":frm1:pnlProspectContact" onclick="modalDialog.show()" 
            oncomplete="modalDialog.hide()"> 
            <f:param name="disableValidation" value="true" /> 
           </p:commandButton> 
관련 문제