java - h: कमांड लिंक्स एक सूची के अंदर काम नहीं कर रहा है



jboss jsf-2 (1)

मुझे RichFaces के साथ एक समस्या है और लिंक्स की सूची बना रहा है I यदि आप किसी भी प्रकार के कमांड लिंक्स को सूची के अंदर उपयोग करने का प्रयास करते हैं (मैंने कोशिश की है कि यूआई: दोहराएँ और समृद्ध: सूची) उस लिंक पर कार्रवाई को नहीं कहा जाता है मैंने भी कमांड बटन और उन 480 के भिन्नताओं की कोशिश की है। मैं जेस्स 2 का उपयोग कर रहा हूं, रिचफेस 4 जेबस 6 पर

<rich:list var="venue" value="#{searchManager.results}" type="definitions" stateVar="status">
  <h:form>
    <h:commandLink value="CLICK IT" immediate="true" action="#{score.selectVenue}" />
  </h:form>
</rich:list>

फॉर्म की स्थिति में भी कोई फर्क नहीं पड़ता।

<h:form>
   <rich:list var="venue" value="#{searchManager.results}" type="definitions" stateVar="status">
       <h:commandLink value="CLICK IT" immediate="true" action="#{score.selectVenue}" />
   </rich:list>
</h:form>

अगर मेरे पास लिंक ही है (कोई सूची नहीं) यह काम करता है

किसी भी तरह की सहायता का स्वागत किया जाएगा।


जब आप कमांड लिंक पर क्लिक करते हैं या कोई फॉर्म सबमिट करने के लिए कमांड बटन दबाते हैं, तो JSF आवेदन के अनुरोध के दौरान चरण में आदेश लिंक / बटन के लिए घटक ट्री को स्कैन करेगा, ताकि यह उसके साथ जुड़े एक्शन एक्सप्रेशन पा सके। आपके मामले में #{score.selectVenue}

हालांकि उस तक कभी तक पहुंचने में सक्षम होने के लिए, आपको यह सुनिश्चित करने की आवश्यकता होगी कि #{searchManager.results} उसी सूची को ठीक करता है जैसा कि फ़ॉर्म प्रदर्शित किया गया था। क्योंकि रिक्त परिणाम सूची के साथ, फॉर्म के अनुरोध मानों के चरण के दौरान दृश्य पर कोई भी कमान लिंक / बटन दिखाई नहीं देगा।

आपके #{searchManager} सेम का अनुरोध किया गया है scoped। अनुरोध स्कॉड सेम के पास एक ही अनुरोध-प्रतिक्रिया चक्र का जीवनकाल है। इसलिए जब आप फॉर्म सबमिट करेंगे, तो आपको एक नया और अनुरोध की एक अन्य घटना मिल जाएगी, जब से फॉर्म दिखाया गया था उस समय से बीन से बीन निकल गया। results संपत्ति बीन के निर्माण के दौरान (पोस्ट) के दौरान संरक्षित नहीं होती है और इस प्रकार यह खाली रहता है। तो जेएसएफ प्रश्न में कमांड लिंक / बटन नहीं पा सकता है और इस प्रकार इसके साथ जुड़े एक्शन एक्सप्रेशन नहीं मिल पाता है और इस तरह इसे लागू नहीं किया जा सकता है।

जैसा कि आप JSF2 का उपयोग कर रहे हैं, एक आसान फिक्स को देखने के दायरे में सेम जगह है। इस तरह से बीन जब तक आप कार्रवाई विधि में null या void लौटने के द्वारा सबमिट और बिल्कुल उसी दृश्य पर नेविगेट कर रहे हैं तब तक जी रहेगा।

@ManagedBean
@ViewScoped
public class SearchManager {
    // ...
}

यह भी देखें:





commandlink