2010-02-25 17 views
8

कोल्डफ्यूज़न में, मैं यह निर्धारित कैसे कर सकता हूं कि क्वेरीस्ट्रिंग के भीतर एक चर मौजूद है या नहीं, इसे जांचने का प्रयास किए बिना त्रुटि?कोल्डफ्यूज़न में, मैं कैसे निर्धारित करूं कि कोई क्वेरी स्ट्रिंग चर मौजूद है या नहीं?

उत्तर

29

दो विकल्प हैं।

पहले cfparam उपयोग करने के लिए एक डिफ़ॉल्ट मान जैसे परिभाषित करने के लिए है:

<cfparam name="url.varname" type="string" default="" /> 

यह सुनिश्चित करता है कि आप हमेशा url.varname को

दूसरा isDefined या structKeyExists का उपयोग करने के लिए परीक्षण करने के लिए है उल्लेख कर सकते हैं चर की उपस्थिति:

<cfif isDefined("url.varname") and url.varname eq 42> do something </cfif> 

या

<cfif structKeyExists(url, "varname") and url.varname eq 42> do something </cfif> 
+2

के लिए एक और रास्ता CF9: IsNull (url.varname) – Henry

+1

cfparam साथ एक स्वच्छ चाल सिर्फ बल्कि नाम से नाम = "VARNAME" का उपयोग करने के लिए है = " url.varname "- तो यह मान्य होगा कि वर्नाम या तो यूआरएल var या एक फॉर्म var के रूप में मौजूद है। जीईटी और पोस्ट के बीच स्विचिंग आसान बनाता है। – kevink

+7

@kevink, यह नीचे जाने के लिए एक खतरनाक रास्ता है। यदि चर या यूआरएल या फॉर्म स्कॉप्स में परिभाषित नहीं किया गया है, तो सीएफपीएआर इसे वैरिबल्स स्कोप में बना देगा। इसके महत्वपूर्ण लेकिन प्रभावशाली दुष्प्रभाव हैं, और आपको वास्तव में जागरूक होना चाहिए कि वास्तव में आपके आवेदन की विश्वसनीयता को सुरक्षित करने के लिए क्या हो रहा है। –

1

मैंने कई स्थानों पर इस दृष्टिकोण का उपयोग किया है।

पृष्ठ के शीर्ष पर

:

<cfparam name="request.someVal" default="request.defaultVal"> 

पेज या कस्टम टैग में बाद में,,, request.someVal चर के मूल्य के लिए जाँच यह दुर्घटनाग्रस्त के डर के बिना के बाद से यह एक डिफ़ॉल्ट मान है।

<cfif ("request.someVal" eq "something")> 
    ... 
</cfif> 
. 
. 
. 
+0

यह मेरे लिए काम करता है, खासकर जब से मैं चाहता हूं कि मेरे पृष्ठ में कुछ समय के लिए कुछ डिफ़ॉल्ट व्यवहार हो, जब कोई क्वेरीस्ट्रिंग मान नहीं है। – Ectropy

0

<cfscript> में, आप कर सकते हैं

param url.varname; // throws error if it does not exist 

param url.varname = ""; // sets value it was not already set 
संबंधित मुद्दे

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