2014-05-08 3 views
40

क्या freemarker में निम्नलिखित के बीच का अंतर है?के बीच अंतर ?? , Has_content, freemarker में if_exists

! 
has_content 
?? 
if_exists 

मैंने उपयोग किया ?? has_content & के बजाय इस तरह के विशाल मुद्दों को जन्म दे। मेरे दिन पेंच मुझे वास्तव में इस बात को स्पष्ट करने की आवश्यकता है।

जब मैं

!(xyz.abc!)?? -- it dint work 

इस्तेमाल किया जब मैं

!(xyz.abc!)?has_content ... it did work 

करता है प्रयोग नहीं किया ?? या has_content या if_exists एक ही चीज़ की जांच करें?

+1

देखने डॉक http://freemarker.org/docs/dgui_template_exp.html –

उत्तर

86

?? बताता है कि बाएं हाथ संकार्य के मूल्य मिल रहा है (इसका मतलब यह जावा null है या आप वहाँ एक अपरिभाषित चर है), और वापस false (लापता) या true (लापता नहीं) तदनुसार देता है।

?has_content?? की तरह बहुत अधिक है, सिवाय इसके कि यह खाली स्ट्रिंग या खाली सूची या खाली मानचित्र के लिए false भी लौटाता है। (यह एक 0 के लिए false वापसी नहीं है, बूलियन false, आदि)

! एक डिफ़ॉल्ट मान जब एक मूल्य याद आ रही है color!"no color" की तरह, देने के लिए प्रयोग किया जाता है। आप ! के दाहिने हाथ संकार्य छोड़ देते हैं, तो डिफ़ॉल्ट मान एक रिक्त स्ट्रिंग और खाली अनुक्रम और एक ही समय पर खाली हैश है।

?if_exists?? लेखन के पुराने तरीका है। इसका इस्तेमाल न करें।

+13

"अच्छी तरह से प्रलेखित" बयान कुछ लिंक हकदार :) [has_content] (http://freemarker.org/docs/ref_builtins_expert.html#ref_builtin_has_content) , [डिफ़ॉल्ट मान ऑपरेटर!] (http://freemarker.org/docs/dgui_template_exp.html#dgui_template_exp_missing_default), [अनुपलब्ध मान परीक्षण ??] (http://freemarker.org/docs/dgui_template_exp.html#dgui_template_exp_missing_test), और [पुरानी शैली if_exists] (http://freemarker.org/docs/dgui_template_exp.html#dgui_template_exp_missing) – coolersport

+1

'है_content' alwarys उपयोगी है, मूल्य को छोड़कर 'बूलेन' या' संख्या 1/0 हां/नहीं' – soytian

+0

है यदि यह खरीदार '<#elseif buyer.company?has_content> में नहीं है, तो यह अपवाद को अपरिभाषित करता है कि कैसे खरीदार मौजूद है, मैंने उपर्युक्त कोशिश की है! – shareef

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