2010-02-08 7 views
13

मेरे पास एक स्ट्रिंग है जो जावा या बैकिंग बीन में किसी ऑब्जेक्ट में तत्काल हो सकती है। मुझे सशर्त रूप से लाल या हरे रंग के पाठ को सशर्त रूप से स्टाइल करने का सबसे अच्छा तरीका नहीं दिख रहा है कि जेएसएफ क्रमशः बीन से हां या नहीं मिलता है या नहीं। मैं richfaces का उपयोग कर रहा हूँ, लेकिन मुझे <c:if> टैग का उपयोग करना चाहिए?जेएसएफ/रिचफेसेस: सशर्त टेक्स्ट स्टाइल

उत्तर

23

(वरीयता के क्रम में):

  • style="color: #{yourVar == 'yes' ? 'green' : 'red'};"
  • एक अलग rendered विशेषता (एक #{yourVar == 'yes'} और अन्य #{yourVar == 'no'})
  • साथ, विभिन्न शैलियों के साथ दो <h:outputText> घटक एक कर एक (JSTL को परिभाषित/फेसलेट/जेएसएफ 2.0) फ़ंक्शन जो var को तर्क के रूप में लेता है और एक शैली/कक्षा देता है - styleClass="#{my:getStyleClass(yourVar)}"
+2

आईएमएचओ, बेहतर तरीका है जो कक्षा का नाम या खाली स्ट्रिंग देता है: <इनपुट प्रकार = टेक्स्ट क्लास = "# {bean.className}" /> – Luke

+5

@ ल्यूक, आईएमएचओ जो कि बीन में केवल अधिक अव्यवस्था है। इसे दृश्य-विशिष्ट सामग्री के बारे में कुछ भी जानने की आवश्यकता नहीं है। 'स्टाइल' या 'स्टाइल क्लास' (बोझो द्वारा विकल्प 1) में एक ईएल टर्नरी हालत पूरी तरह से समझ में आता है। – BalusC

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