2011-02-19 14 views
5

मैं JSF 2.0JSF 2.0 पास डेटा (या पृष्ठों?)

साथ काम कर रहा हूँ मैं अपने व्यवस्थापक अनुभाग में एक रूप है जहाँ मैं एक सूची कुछ प्रयोक्ताओं का चयन करने जा रहा हूँ है।

फॉर्म (selectusers.xhtml) इन उपयोगकर्ताओं को एक बीन (SelectUsers.java) में एक सूची में जोड़ रहा है।

कुछ उपयोगकर्ता चुने जाने के बाद, मैं selectUsers.java से उपयोगकर्ता की सूची को अन्य बीन (AddAddressBean.java) में पास कर दूंगा और अन्य फॉर्म (addadress.xhtml) में जानकारी जोड़ना जारी रखूंगा। प्रत्येक उपयोगकर्ता के लिए AddAddressBean से संबंधित अन्य गुण सेट करें।

मुझे नहीं पता कि इसे कैसे कार्यान्वित किया जाए। मुझे लगता है कि AddAddressBean.java स्वतंत्र होगा (इसलिए मैं इसे अन्य बीन्स के साथ एक साथ उपयोग कर सकता हूं), इसलिए मैं चाहता हूं कि AddAddressBean.java अन्य बीन्स के बारे में नहीं जान पाएगा।

क्या आप कृपया मेरी मदद कर सकते हैं? =)

बीआर कार्ल

उत्तर

5

कई त्वरित बातें ध्यान के लिए आते हैं: @SessionScoped या CDI के @ConversationScope

  • का उपयोग कर केवल उन्हीं संबंधित पृष्ठों के लिए

    1. शायद आप एक ही सेम हो सकता था, जब क्लिक करने पेज 1 पर बटन जहां यह आपको पहले बीन में पृष्ठ 2 पर ले जाएगा, आप उन ऑब्जेक्ट्स को स्टोर करने के लिए फ्लैश ऑब्जेक्ट का उपयोग कर सकते हैं जिन्हें आप पास करना चाहते हैं, और दूसरी बीन की @ पोस्ट कॉन्स्ट्रक्चर विधि में, आप सभी ऑब्जेक्ट्स प्राप्त कर सकते हैं फ्लैश ऑब्जेक्ट से
    2. यदि आप सत्र स्कोप का उपयोग करके दिमाग में नहीं हैं, तो आपके पास अभी भी 2 सेम हो सकते हैं, और एक बीन jsf way (@ManagedProperty), या जावा ईई इंजेक्ट मार्ग (@ इंजेक्ट) या वसंत मार्ग का उपयोग कर किसी अन्य बीन को संदर्भित कर सकता है यदि आप वसंत का उपयोग करते हैं (@Autowired)
  • +0

    मैं 2 विधि का पालन किया। दूसरे पृष्ठ पर (दूसरा बीन) मुझे पोस्ट निर्माण विधि पर फ़्लैश से एक शून्य वस्तु मिलती है। कोई विचार क्यों? –

    0

    यह मैंने कैसे कार्यान्वित किया (वार्तालाप के रूप में इस्तेमाल किया गया @bertie ने कहा)।

    सेम 1:

    @Named("conversationBean1") 
    @ConversationScoped 
    public class ConversationBean1 implements Serializable { 
          //---start conversation---- 
    
        } 
    

    सेम 2:

    @Named("conversationBean2") 
    @ConversationScoped 
    public class ConversationBean2 implements Serializable 
        { 
         @Inject 
         private ConversationBean1 conversationBean1; 
        } 
    
    संबंधित मुद्दे