2013-01-18 22 views
10

जब Save बटन दबाया जाता है, क्रियाओं का डेटा Dialog सत्यापित किया जाना चाहिए। यदि आवश्यक जानकारी दर्ज की गई है और मान्य है, तो कारण वाला दूसरा संवाद डायलॉग प्रदर्शित किया जाएगा।args.validation को ट्रिगर कैसे करें प्राइमफ़ेस में अपूर्ण

सहेजे गए ऑब्जेक्ट का गैर-जेएसएफ सत्यापन एक विधि के साथ किया जाता है जो त्रुटि संदेशों की एक सूची देता है। यदि मामला सत्यापन विफल रहता है तो त्रुटियों को FacesMessage के साथ प्रदर्शित किया जाता है। oncomplete से अगर अन्य खंड को ट्रिगर करने के लिए objectsBean.validate में मुझे कैसे करना चाहिए?

<p:dialog id="actionsDialog" widgetVar="actionsDialog" dynamic="true" 
    resizable="false" width="800" modal="true"> 
    <ui:include src="/WEB-INF/flows/custom-flow/genericObject.xhtml"/> 
    <f:facet name="footer"> 
     <p:commandButton value="Save" update="msgs" 
      oncomplete="if (args.validationFailed) {reasonDialog.hide()} else {reasonDialog.show()}" 
      actionListener="#{objectsBean.validate}"/> 
     <p:commandButton value="Cancel" immediate="true" oncomplete="actionsDialog.hide()" /> 
    </f:facet> 
</p:dialog> 

उत्तर

17

तो JSF-निर्मित मान्यता सुविधा का उपयोग (यानी सिर्फ प्रमाणकों जो उसमें वांछित सामना कर रहा है संदेश के साथ ValidatorException हमेशा की तरह फेंक का उपयोग करें) वास्तव में किसी कारण के लिए एक विकल्प (मैं वास्तव में दो बार लगता है कि नहीं है, कोई , जेएसएफ सत्यापन सुविधा के आसपास काम करने के बारे में तीन बार), फिर आप जेएसएफ को सिग्नल करने के लिए हमेशा FacesContext#validationFailed() का उपयोग कर सकते हैं कि प्रमाणीकरण सामान्य रूप से विफल रहा है, जो कि ValidatorException पकड़े जाने पर जेएसएफ सत्यापन सुविधा कवर के तहत क्या कर रही है।

FacesContext.getCurrentInstance().validationFailed(); 
+0

या तो मैं ऐसा करता हूं या अपवाद फेंकता हूं, जेएसएफ लाइफसाइकिल जारी रहता है, यह मॉडल मूल्यों को अद्यतन करता है और एप्लिकेशन को आमंत्रित करता है। सत्यापन विफल होने पर पृष्ठ के प्रतिपादन को रोकने का कोई तरीका है? – MounirReg

+0

@Mounir: यह सामान्य व्यवहार नहीं है। बस http://stackoverflow.com/tags/jsf/info को निर्देशित एक प्रश्न पूछें ताकि हम उस कार्य तक नहीं पहुंचने पर आपकी समस्या का निरीक्षण, डीबग और नाखुश कर सकें। – BalusC

संबंधित मुद्दे