jsf - PrimeFaces nested form inside p:dialog with appendTo="@(body) -
मेरे पास यह टुकड़ा है:
& lt; h: form id = "form" & gt ; & Lt;! - अन्य सामग्री - & gt; & Lt; p: पैनल आईडी = "पैनल" हैडर = "परीक्षण" & gt; & Lt; p: इनपुट टेक्स्ट id = "input1" value = "# {viewScope.prop1}" आवश्यक = "सही" / & gt; & Lt; p: commandButton id = "button1" प्रक्रिया = "@ फॉर्म" अद्यतन = "@ फॉर्म @ विड्टव्वार (डायलॉग)" अपूर्ण "" पीएफ ('संवाद')। दिखाने () "मान =" ठीक "/ & gt; & Lt; / p: पैनल & gt; & Lt;! - अन्य सामग्री - & gt; & Lt; / h: प्रपत्र & gt; & Lt; p: डायलॉग आईडी = "डायलॉग" हैडर = "डायलॉग" विजेट वैर = "डायलॉग" मोडल = "सच्चा" & gt; & Lt; h: फ़ॉर्म आईडी = "फॉर्म 2" & gt; & Lt; p: इनपुट टेक्स्ट id = "input2" value = "# {viewScope.prop1}" आवश्यक = "सही" / & gt; & Lt; p: कमान बटटन आईडी = "बटन 2" प्रक्रिया = "@ फॉर्म" अपडेट = "@ फॉर्म" मान = "ठीक" / & gt; & Lt; / h: प्रपत्र & gt; & Lt; / p: संवाद & gt;
और सभी अपेक्षित काम कर रहे हैं।
मैं क्या हासिल करना चाहता हूं यह है:
& lt; h: फ़ॉर्म id = "प्रपत्र" & gt; & Lt;! - अन्य सामग्री - & gt; & Lt;! - टुकड़ा प्रारंभ - & gt; & Lt;! - यह टुकड़ा अपनी फाइल पर होगा और ui के माध्यम से शामिल होगा: शामिल (या समग्र घटक के अंदर) - & gt; & Lt; p: पैनल आईडी = "पैनल" हैडर = "परीक्षण" & gt; & Lt; p: इनपुट टेक्स्ट id = "input1" value = "# {viewScope.prop1}" आवश्यक = "सही" / & gt; & Lt; p: commandButton id = "button1" प्रक्रिया = "@ फॉर्म" अद्यतन = "@ फॉर्म @ विड्टव्वार (डायलॉग)" अपूर्ण "" पीएफ ('संवाद')। दिखाने () "मान =" ठीक "/ & gt; & Lt; / p: पैनल & gt; & Lt; p: डायलॉग आईडी = "डायलॉग" हैडर = "डायलॉग" विजेटविर = "डायलॉग" मोडल = "सच्चा" एपेंड टू = "@ (बॉडी)" & gt; & Lt; h: फ़ॉर्म आईडी = "फॉर्म 2" & gt; & Lt; p: इनपुट टेक्स्ट id = "input2" value = "# {viewScope.prop1}" आवश्यक = "सही" / & gt; & Lt; p: कमान बटटन आईडी = "बटन 2" प्रक्रिया = "@ फॉर्म" अपडेट = "@ फॉर्म" मान = "ठीक" / & gt; & Lt; / h: प्रपत्र & gt; & Lt; / p: संवाद & gt; & Lt;! - टुकड़ा अंत - & gt; & Lt;! - अन्य सामग्री - & gt; & Lt; / h: प्रपत्र & gt;
लेकिन मैंने असफल रूप से प्रक्रिया
और update
के लिए button1
के कुछ संयोजन की कोशिश की जिसके परिणामस्वरूप प्रक्रिया कुछ भी .. input1
भी रीसेट कर रहा है ...
तो, कैसे एक p: डायलॉग
को एक टुकड़ा या कम्पोजिट कंप के अंदर भेज दिया जा सकता है इसे बाहर form
से बाहर रखा गया है?
ध्यान दें कि इसका प्रयोग:
& lt; h: form id = "form" & gt; & Lt;! - अन्य सामग्री - & gt; & Lt; ui: शामिल करें src = "panel.xhtml" / & gt; & Lt;! - अन्य सामग्री - & gt; & Lt; / h: प्रपत्र & gt; & Lt; ui: शामिल करें src = "dialog.xhtml" / & gt;
स्वीकार्य समाधान नहीं है।
मैं JSF 2.2.8 (मूजररा) और पीएफ 5.1 पर हूं
<
अंत में, मुझे OmniFaces का उपयोग करके और <: moveComponent /> gt;
पृष्ठ:
& lt; h: फ़ॉर्म आईडी = "फ़ॉर्म" & gt; & Lt;! - अन्य सामग्री - & gt; & Lt; ui: शामिल करें src = "/ टुकड़ा / के साथ / भीतर / फ़ॉर्म.एक्सएचएमएल" / & gt; & Lt;! - अन्य सामग्री - & gt; & Lt; / h: प्रपत्र & gt;
टुकड़ा:
& lt; ui: रचना & gt; & Lt; p: इनपुटटेक्स्ट आईडी = "बाहरी टेक्स्ट" मान = "# {दृश्य स्काइप.टेक्स्ट}" / & gt; & Lt; p: कमांडबटन आईडी = "ओपनबटन" प्रोसेस = "@ फॉर्म" अपडेट = "@ विजेटवेर (टेस्टडियलोग)" अपूर्ण = "पीएफ ('टेस्टडियलोग')। शो ()" मान = "ओपन" / & gt; & Lt; o: moveComponent id = ":" के लिए = ": # {facesContext.viewRoot.clientId}" गंतव्य = "ADD_LAST" & gt; & Lt; h: फ़ॉर्म आईडी = "इनरफ़ॉर्म" & gt; & Lt; p: डायलॉग आईडी = "डायलॉग" विजेटविआर = "टेस्टडियलोग" हैडर = "टेस्ट डायलॉग" & gt; & Lt; p: इनपुट टेक्स्ट id = "innerText" value = "# {viewScope.text}" / & gt; & Lt; f: पहलू नाम = "पादलेख" & gt; & Lt; p: कमांड बटन आइकन = "पुष्टिबटन" प्रक्रिया = "@ फॉर्म" अद्यतन = ": फ़ॉर्म" अपूर्ण = "यदि (! Args.validationFailed) पीएफ ('testDialog')। Hide ()" value = "submit" / & gt ; & Lt; / च: पहलू & gt; & Lt; / p: संवाद & gt; & Lt; / h: प्रपत्र & gt; & Lt; / o: moveComponent & gt; & Lt; / ui: रचना & gt;
यह कुछ चेतावनी का कारण होगा:
चेतावनी clientId के साथ गतिशील कार्रवाई को बचाने में असमर्थ 'form: innerForm: dialog' क्योंकि UIComponent नहीं मिल पाया चेतावनी अक्षम क्लाइंट के साथ गतिशील क्रिया को बचाने के लिए 'form: innerForm: innerText' क्योंकि यूआईकॉम्पेन्टर नहीं मिल सकता है चेतावनी क्लाइंट के साथ गतिशील क्रिया को बचाने में असमर्थ 'form: innerForm: confirmButton' क्योंकि UICmponent नहीं पाया जा सकता है
क्योंकि पुनर्स्थापित घटकों को बाद में RESTORE_VIEW
पर पोस्टबैक के लिए पुनः हटाया नहीं गया है।
ये चेतावनियां, मेरे प्रयोगों के लिए, हानिरहित हैं और उन्हें सुरक्षित रूप से अनदेखा किया जा सकता है।
हालांकि मैंने अंततः इसे ठीक करने के लिए खोला।
Comments
Post a Comment