2012-02-01 15 views
8

मैं जेएसएफ 2.0 में एक एप्लीकेशन विकसित कर रहा हूं। मैं प्राइमफेस घटक पुस्तकालय का भी उपयोग कर रहा हूं। मुझे पी के साथ समस्या हो रही है: प्राइमफेस की पुष्टि करें। जैसे ही मैं एक पी दिखाना चाहता हूं: confirmDialog, यह लगभग तुरंत गायब हो जाता है। अजीब चीज यह है कि यह समस्या केवल उस एप्लिकेशन के साथ होती है जो काम पर ग्लासफ़िश सर्वर पर तैनात है। जब मैं घर पर अपने कंप्यूटर पर ग्लासफ़िश सर्वर पर एक ही .war फ़ाइल अपलोड करता हूं या जब मैं नेटबीन्स में एप्लिकेशन चलाता हूं तो यह समस्या नहीं होती है। मैं वास्तव में यह नहीं समझ सकता कि इस समस्या का कारण क्या है। इसके अलावा मुझे Google पर इसके बारे में कोई जानकारी नहीं मिली। किसी भी तरह की सहायता का स्वागत किया जाएगा! यह मेरा कोड है:प्राइमफेस की पुष्टि तुरंत संवाद गायब हो जाती है

<h:commandButton value="Verwijderen" onclick="bezoekConfirmation.show()" styleClass="verwijderKnopBig" rendered="#{pageRenderController.canWriteBezoekenMobiele}" /> 
<p:confirmDialog message="Bent u zeker dat u dit bezoek wilt verwijderen?" closable="false" 
    header="Bezoek verwijderen" severity="alert" widgetVar="bezoekConfirmation"> 
    <p:commandButton value="Ja" oncomplete="bezoekConfirmation.hide()" action="#{bezoekenMobieleController.deleteBezoek}" ajax="false" /> 
    <p:commandButton value="Nee" onclick="bezoekConfirmation.hide()" type="button" /> 
</p:confirmDialog> 
+0

क्या आप Ctrl + F5 वह पृष्ठ जो कार्य सर्वर से खोला गया है या कम से कम पूरे डोमेन पर ब्राउज़र कैश को साफ़ करने के लिए यह सुनिश्चित करने के लिए कि आपके पास एल है प्राइमफेस के सबसे पुराने संस्करण में शामिल सीएसएस/जेएस सामान? शायद आपने प्राइमफेस को इस बीच अपग्रेड किया है और आपके ब्राउज़र कैश में डोमेन से अभी भी पुराना जेएस है। – BalusC

+0

यह सच है कि मैंने एप्लिकेशन के विकास के दौरान प्राइमफेसेस lib को किसी अन्य संस्करण में अपडेट किया है। आप मुझे क्या करने की सलाह देंगे? क्या सर्वर की तरफ मुझे कुछ करना चाहिए? – Bart1990

+0

जैसा कि कहा गया है, स्पष्ट ब्राउज़र कैश। – BalusC

उत्तर

16

बटन पर क्लिक करने से सबमिट हो जाएगा। संवाद प्रकट होता है, और पृष्ठ तुरंत पुनः लोड किया जाता है।

बदलें इस:

bezoekConfirmation.show() 
इस के लिए

:

bezoekConfirmation.show(); return false; 

यह वास्तव में अजीब है कि आपके संस्करण के घर पर अपने कंप्यूटर पर काम करता है।

+0

वास्तव में अजीब। –

+0

इसके अलावा, मैंने h: commandButton प्रकार को "रीसेट" में बदल दिया। – Bart1990

+2

पी: कमांड बटन प्रकार = "बटन" जो आपको चाहिए। –

1
<h:commandButton value="Verwijderen" onclick="bezoekConfirmation.show()" styleClass="verwijderKnopBig" rendered="#{pageRenderController.canWriteBezoekenMobiele}" /> 
<p:confirmDialog message="Bent u zeker dat u dit bezoek wilt verwijderen?" closable="false" 
    header="Bezoek verwijderen" severity="alert" widgetVar="bezoekConfirmation" appendToBody="true"> 
<p:commandButton value="Ja" oncomplete="bezoekConfirmation.hide()" action="#{bezoekenMobieleController.deleteBezoek}" ajax="false" /> 
    <p:commandButton value="Nee" onclick="bezoekConfirmation.hide()" type="button" /> 
</p:confirmDialog> 

appendToBody="true" अपने समस्या को दूर करेगा

4

यदि आप एक विधि कॉल या एक चर सेट करने के लिए इरादा नहीं है return false; साथ समाधान केवल काम करेंगे।

इस मामले में, onclick="dialog.show();" के बजाय oncomplete="dialog.show();" का उपयोग करें, यह विधि कॉल से गुजर जाएगा।


उदाहरण:

यह देखते हुए कि निम्नलिखित कोड डेटा तालिका के कुछ प्रकार में है, तो आप

<p:commandButton value="edit" update=":dialog" oncomplete="dialog.show();"> 
<f:setPropertyActionListener target="#{bean.field}" value="#{_item}" /> 
</p:commandButton> 

हो सकता है या कॉल सेटर सीधे

<p:commandButton value="edit" update=":dialog" oncomplete="dialog.show();" action="bean.setField(_item)"> 
</p:commandButton> 
+1

2017, अपूर्ण पर क्लिक करना अभी भी एक वैध जवाब है, thx! –

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