जेएसएफ घटकों को सशर्त रूप से प्रदर्शित करना


79

सबसे पहले, मैं जावा ईई के लिए नया हूं, एक मजबूत एएसपी .NET विकास पृष्ठभूमि से आया है। मैं नेट के माध्यम से चला गया हूं, और मुझे यह याद आ सकता है, लेकिन ऐसा लगता है कि जेएसएफ घटकों को बैकिंग बीन क्लास कनेक्ट करने के तरीके पर कोई सरल और सीधे-टू-द-पॉइंट ट्यूटोरियल नहीं हैं।

एक अच्छा उदाहरण इस तरह है, वर्तमान में मैं एक JSF पेज बनाने की कोशिश कर रहा हूँ जहाँ मेनू बार के रूप में लिंक का एक सेट और रूपों का एक सेट है। मैं क्या करने की योजना बना रहा हूं, जब एक लिंक पर क्लिक करते हैं, तो एक विशेष रूप प्रदान किया जाएगा।

ASP.NET में, मैं आसानी से तत्व को पुनः प्राप्त कर सकता हूं और फिर प्रदर्शन योग्य होने के लिए विशेषता सेट कर सकता हूं। मुझे आश्चर्य है कि अगर जेएसएफ में ऐसा करने के लिए आसान तरीका (बिल्ली, यहां तक ​​कि किसी भी तरह से) है।

प्रपत्र पहले से ही पृष्ठ में हैं, किसी विशेष लिंक पर क्लिक करने पर "रेंडर" विशेषता को सही पर सेट करने की बात है।

जवाबों:


158

हाँ, renderedविशेषता का उपयोग करें ।

<h:form rendered="#{some boolean condition}">

आप आमतौर पर मॉडल को घटक को पकड़ने और उसे हेरफेर करने देने के बजाय इसे मॉडल से जोड़ते हैं।

उदाहरण के लिए

<h:form rendered="#{bean.booleanValue}" />
<h:form rendered="#{bean.intValue gt 10}" />
<h:form rendered="#{bean.objectValue eq null}" />
<h:form rendered="#{bean.stringValue ne 'someValue'}" />
<h:form rendered="#{not empty bean.collectionValue}" />
<h:form rendered="#{not bean.booleanValue and bean.intValue ne 0}" />
<h:form rendered="#{bean.enumValue eq 'ONE' or bean.enumValue eq 'TWO'}" />

के महत्व को नोट कीवर्ड आधारित ईएल ऑपरेटरों जैसे gt, ge, leऔर ltके बजाय >, >=, <=और <कोण कोष्ठक के रूप में <और >एक्सएमएल में पात्रों आरक्षित हैं। इस संबंधित प्रश्नोत्तर को भी देखें: एक्सएचटीएमएल पार्स करने में त्रुटि: तत्वों की सामग्री में अच्छी तरह से गठित चरित्र डेटा या मार्कअप शामिल होना चाहिए

अपने विशिष्ट उपयोग के मामले में, मान लें कि लिंक नीचे की तरह एक पैरामीटर से गुजर रहा है:

<a href="page.xhtml?form=1">link</a>

फिर आप नीचे दिए गए फॉर्म को दिखा सकते हैं:

<h:form rendered="#{param.form eq '1'}">

( अनुरोध मानदंड का प्रतिनिधित्व करते #{param}हुए एक अंतर्निहित ईएल ऑब्जेक्ट है Map)

यह सभी देखें:


13

पिछली पोस्ट के अलावा आपके पास हो सकता है

<h:form rendered="#{!bean.boolvalue}" />
<h:form rendered="#{bean.textvalue == 'value'}" />

Jsf 2.0


1
इस तरह के एक छोटे से जोड़ एक अलग जवाब के लायक नहीं है।
कार्ल रिक्टर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.