2012-12-03 29 views
21

में चेहरे का संदेश कैसे दिखाएं मैंने एक इंटरफ़ेस प्रदान किया है जो उपयोगकर्ताओं को एप्लिकेशन के लिए खाता बनाने की अनुमति देता है। प्रक्रिया के अंत में पंजीकरण पद्धति पंजीकरण प्रक्रिया को पृष्ठ पर एक सफल संदेश जोड़ती है और फिर उपयोगकर्ता को केंद्रीय डेटा तालिका में नेविगेट करती है जो सभी सिस्टम उपयोगकर्ताओं को प्रदर्शित करती है।पुनर्निर्देशित पृष्ठ

मेरी समस्या यह है कि पेज रीडायरेक्ट के कारण सफलता संदेश कभी प्रदर्शित नहीं होता है। मेरे पास विधि में प्रतीक्षा() नहीं हो सकती है क्योंकि विधि पूर्ण होने तक जेएसएफ संदेश प्रदर्शित नहीं होगा। आदर्श रूप से मैं सफलता संदेश प्रदर्शित करना चाहता हूं और उसके बाद एक निश्चित समय बाद पृष्ठ को पुनर्निर्देशित किया जाता है।

मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

48

Keep the messagethe flash scope में। यह रीडायरेक्ट से बच जाएगा।

context.addMessage(clientId, message); 
externalContext.getFlash().setKeepMessages(true); 
return "users.xhtml?faces-redirect=true"; 

नोट है कि पुराने Mojarra संस्करणों कुछ अजीब फ्लैश गुंजाइश संबंधित बग हो:

आप सबसे अच्छा क्रम में Mojarra 2.1.27/2.2.5 की एक न्यूनतम करने के लिए उन्नत करने के लिए चाहते हैं सुनिश्चित करें कि आपके आवेदन इस से प्रभावित नहीं है।

+0

धन्यवाद बलुस, क्या मुझे नए पृष्ठ पर संदेशों के लिए एक अद्यतन कॉल करने की आवश्यकता है या पृष्ठ लोड होने पर डिफ़ॉल्ट रूप से ट्रिगर किया जाना चाहिए? – tarka

+0

नहीं, एक रीडायरेक्ट एक सिंक्रोनस अनुरोध बनाता है, इसलिए आंशिक रेंडर का कोई साधन नहीं है। इसे अभी एक नए नए जीईटी अनुरोध के रूप में प्रस्तुत किया गया है। तो आपको बस एक '' या '' होना चाहिए। – BalusC

+0

बहुत बहुत धन्यवाद। मेजर्रा 2.1.6 पर बस मैंने देखा है, इसलिए मुझे इसे काम करने के लिए जल्दी से अपग्रेड करने की आवश्यकता है? 2.1.14 अभी तक स्थिर है? – tarka