2010-02-05 14 views
43

कृपयाअशक्त जांच

styleClass="#{obj.validationErrorMap eq null ? ' ' : 
    obj.validationErrorMap.contains('key')?'highlight_field':'highlight_row'}" 

देखते हैं कि यह अभिव्यक्ति भाषा यहां तक ​​कि अगर नक्शा रिक्त है, highlight_row शैली लागू हो रही है।

तो मैं फिर भी highlight_row लागू किया जा रहा है

styleClass="#{empty obj.validationErrorMap ? ' ' : 
    obj.validationErrorMap.contains('key')?'highlight_field':'highlight_row'}" 

लिए बदल गया है,।
यदि नक्शा empty OR null है तो मैं किसी भी शैली को लागू नहीं करना चाहता हूं।

कोई मदद? और इस व्यवहार के कारण?

+0

क्या आप जेबॉस ईएल एक्सटेंशन का उपयोग कर रहे हैं? – Bozho

+0

मुझे लगता है हाँ। jboss-el.jar सर्वर \ appl \ lib फ़ोल्डर में मौजूद है। – crazyTechie

उत्तर

71

empty (यह शून्य और खालीपन दोनों की जांच करता है) का उपयोग करें और नेस्टेड टर्नरी अभिव्यक्ति को कोष्ठक द्वारा समूहित करें (ईएल कुछ कार्यान्वयन/संस्करणों में है, अर्थात् नेस्टेड टर्नरी अभिव्यक्तियों के साथ कुछ समस्याग्रस्त)। इस प्रकार, तो:

styleClass="#{empty obj.validationErrorMap ? ' ' : 
(obj.validationErrorMap.contains('key') ? 'highlight_field' : 'highlight_row')}" 

अगर अब भी व्यर्थ में (मैं तो जाँच करेगा JBoss ईएल कॉन्फ़िगरेशन), "सामान्य" ईएल दृष्टिकोण का उपयोग करें:

styleClass="#{empty obj.validationErrorMap ? ' ' : 
(obj.validationErrorMap['key'] ne null ? 'highlight_field' : 'highlight_row')}" 

अद्यतन: टिप्पणियों के अनुसार, Map वास्तव में List बन गया है (कृपया अपने नामकरण सम्मेलनों पर काम करें)। यह जांचने के लिए कि List में कोई आइटम "सामान्य" ईएल तरीका है, JSTLfn:contains का उपयोग करें (हालांकि स्पष्ट रूप से प्रलेखित नहीं है, यह List के लिए भी काम करता है)।

styleClass="#{empty obj.validationErrorMap ? ' ' : 
(fn:contains(obj.validationErrorMap, 'key') ? 'highlight_field' : 'highlight_row')}" 
+0

धन्यवाद। मैं इसका परीक्षण करूंगा। सत्यापन एररमैप मानचित्र नहीं है। मेरा गलत नामकरण माफ़ कीजिये। इसकी सरणी सूची जिसमें इनपुट फ़ील्ड की सूची शामिल है जो सत्यापन विफल रही है। – crazyTechie

+0

अद्यतन में सुझाव के लिए धन्यवाद। मैं शुरुआत में एक मानचित्र का उपयोग करना चाहता था। तो वह नाम दिया। लेकिन बाद में सूची में बदल गया। पहली अभिव्यक्ति ठीक काम कर रही है (कोष्ठक का उपयोग करके)। बहुत बहुत धन्यवाद – crazyTechie

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