जेएसएफ घटक का rendered
विशेषता एक सर्वर-साइड सेटिंग है जो नियंत्रित करती है कि जेएसएफ को वांछित HTML उत्पन्न करना चाहिए या नहीं।
<f:ajax>
टैग की render
विशेषता JSF जेनरेट किया गया HTML तत्व है जो JavaScript को ajax अनुरोध की पूरी पर इसकी सामग्री को बदलने के लिए में HTML डोम पेड़ से document.getElementById()
से प्राप्त कर सकते हैं की एक (सापेक्ष) ग्राहक आईडी इंगित करना चाहिए।
हालांकि, चूंकि आप एक HTML तत्व की क्लाइंट आईडी निर्दिष्ट कर रहे हैं जिसे जेएसएफ द्वारा कभी प्रदान नहीं किया जाता है (rendered
false
होने के कारण), जावास्क्रिप्ट इसे HTML DOM पेड़ में नहीं ढूंढ सकता है।
आप एक कंटेनर घटक है जो हमेशा प्रदान की गई है में लपेट और इस तरह हमेशा एचटीएमएल डोम वृक्ष में उपलब्ध की जरूरत है।
<h:commandButton action="#{Bean.method()}" value="Submit">
<f:ajax execute="something" render="messages" />
</h:commandButton>
<p>
<h:panelGroup id="messages">
<h:outputFormat rendered="#{Bean.answer=='one'}" value="#{messages.one}"/>
<h:outputFormat rendered="#{Bean.answer=='two'}" value="#{messages.two}"/>
</h:panelGroup>
</p>
असंबंधित ठोस समस्या के लिए, आप एक संभव डिजाइन गलती है। ,
<h:commandButton action="#{Bean.method()}" value="Submit">
<f:ajax execute="something" render="message" />
</h:commandButton>
<p>
<h:outputFormat id="message" value="#{Bean.message}" />
</p>
आपके उत्तर के लिए धन्यवाद। मैंने जो किया है वह है कि मैंने अपने फॉर्म में रेंडर = "@ फॉर्म" का इस्तेमाल किया और यह काम किया। मैंने जो भी सुझाव दिया है, मैं कोशिश करूंगा। – sandra
यह वास्तव में भी काम करेगा, जब तक यह घटक का अभिभावक है जो हमेशा * प्रस्तुत किया जाता है (ठीक उसी तरह मेरा जवाब आपको बताने की कोशिश कर रहा है)। यदि फॉर्म में 10 अन्य घटक शामिल हैं, तो केवल एक अनावश्यक ओवरहेड हो सकता है, उदाहरण के लिए, बिल्कुल अद्यतन करने की आवश्यकता नहीं है। – BalusC
क्या हम AJAX रेंडर में स्थिति जोड़ सकते हैं? –