2013-01-05 18 views
7

मैं valueChangeListener पर किसी मुद्दे के साथ अटक गया हूँ। मैं वेबलॉग 6.0 पर जेएसएफ 1.2 का उपयोग कर रहा हूं।एक मूल्यChangeListener विधि में अद्यतन मॉडल मान कैसे प्राप्त करें?

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

मैंने इसका उपयोग करने के लिए valueChangeListener का उपयोग किया है क्योंकि मुझे बदले गए ईवेंट के पुराने और नए मूल्य की आवश्यकता है। समस्या यह है कि वैल्यूशन चरण के अंत में ValueChangeListener का आह्वान किया जाता है, मुझे valueChangeListener विधि में Name1 फ़ील्ड का अद्यतन पता नहीं मिल रहा है। क्या कोई मुझे कोई कामकाज पाने में मदद कर सकता है?

उत्तर

14

रूप valueChangeListener सत्यापन चरण के अंत में शुरू हो जाती है, मैं NAME1 क्षेत्र की अद्यतन पता valueChangeListener विधि

कतार INVOKE_ACTION चरण के लिए स्थिति में नहीं मिल रहा है तो यह एक क्रिया (श्रोता) विधि के रूप में कार्य करता है।

public void valueChangeListenerMethod(ValueChangeEvent event) { 
    if (event.getPhaseId() != PhaseId.INVOKE_APPLICATION) { 
     event.setPhaseId(PhaseId.INVOKE_APPLICATION); 
     event.queue(); 
     return; 
    } 

    // Do your original job here. 
    // It will only be entered when current phase ID is INVOKE_APPLICATION. 
} 

INVOKE_ACTION के रूप में चरण रन UPDATE_MODEL_VALUES के बाद, अद्यतन मॉडल मान बस उपलब्ध है "हमेशा की तरह" हो जाएगा।

+1

बहुत बहुत धन्यवाद BalusC। यह काम करता हैं। जब भी मैं कुछ जेएसएफ मुद्दों पर फंस जाता हूं, मैं हमेशा स्टैक ओवरफ्लो में आपके सुझावों की तलाश करता हूं और मुझे लगता है कि आपके उत्तर बहुत सरल और अनुसरण करने के लिए स्पष्ट हैं। एक बार फिर धन्यवाद। – Suman

+1

आपका स्वागत है। – BalusC

+0

सीधे प्रश्न से कनेक्ट नहीं है, लेकिन अगर कोई इस समाधान का उपयोग करेगा तो कुछ और जानकारी: जागरूक रहें, कि यदि आपके पास इस क्षेत्र के लिए पंजीकृत कोई अन्य वैल्यू चेंजलिस्टर्स है, तो वे दो बार भी ट्रिगर होंगे। मुझे लगता है कि यह एक शांत विशिष्ट परिदृश्य है, लेकिन वैसे भी जानना अच्छा है। – whitesite

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