CFPARAM |
Description
Tests for a parameter's existence, tests its data type, and, if a default value is not assigned, optionally provides one.
Category
Variable manipulation tags

Syntax

    <cfparam
       name = "param_name"
       type = "data_type"
       default = "value">

See also
cfcookie, cfregistry, cfsavecontent, cfschedule, cfset
Usage

You can use this tag to make the following tests:

- To test whether a required variable exists, use this tag with only the name attribute. If it does not exist, ColdFusion MX stops processing the page and returns an error.
- To test whether a required variable exists, and that it is of the specified type, use this tag with the name and type attributes. If the variable does not exist or its value is not of the specified type, ColdFusion returns an error.
- To test whether an optional variable exists, use this tag with the name and default attributes. If the variable does not exist, it is created and set to the default attribute value. If the variable exists, processing continues; the value is not changed.

If you specify variableName for the returnType attribute, the parameter value must be a string that is in ColdFusion variable name format; that is, starts with a letter, underscore (_), or Unicode currency symbol, and contains letters, numbers, underscores, periods, and Unicode currency symbols, only. ColdFusion does not check whether the parameter value corresponds to an existing ColdFusion variable.

Tip: | To improve performance, avoid using the cfparam tag in ColdFusion functions, including in CFC methods. Instead, place the cfparam tags in the body of the CFML pages.

Example

    <!--- This example shows how to use CFPARAM to define default values for page
       variables -------->
    <cfparam name = "storeTempVar" default = "my default value">
    <cfparam name = "tempVar" default = "my default value">

    <!--- check if form.tempVar was passed --->
    <cfif IsDefined("form.tempVar") is "True">
       <!--- check if form.tempVar is not blank --->
       <cfif form.tempVar is not "">
          <!--- if not, set tempVar to value of form.tempVar --->
          <cfset tempVar = form.tempVar>
       </cfif>
    </cfif>

    <body>
    <h3>cfparam Example</h3>
    <p>cfparam is used to set default values so thata developer does not have to
    check for the existence of a variable using a function like IsDefined.

    <p>The default value of our tempVar is
       "<cfoutput>#StoreTempVar# </cfoutput>"

    <!--- check if tempVar is still the same as StoreTempVar
    and that tempVar is not blank --->
    <cfif tempVar is not #StoreTempVar#
       and tempVar is not "">
          <h3>The value of tempVar has changed: the new value is
          <cfoutput>#tempVar#</cfoutput></h3>
    </cfif>

    <p>
    <form action = "cfparam.cfm" method = "post">
       Type in a new value for tempVar, and hit submit:<br>
       <input type = "Text" name = "tempVar">
       <input type = "Submit" name = "" value = "submit">
    </form>

NAME |
| Required
Name of parameter to test (such as "Client.Email " or "Cookie.BackgroundColor "). If omitted, and if the parameter does not exist, an error is thrown.

TYPE |
| Optional

Default value: "any"

The parameter data type:

- any: any type of value
- array: an array value
- binary: a binary value
- boolean: a Boolean value
- date: a date-time value
- guid: a Univerally Unique Identifier that follows the Microsoft/DCE standard, as follows: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" where `X' is a hexadecimal number.
- numeric: a numeric value
- query: a query object
- string: a string value or single character
- struct: a structure
- UUID: a ColdFusion Universally Unique Identifier, formatted `XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXX', where `X' is a hexadecimal number. See CreateUUID.
- variableName: a string formatted according to ColdFusion variable naming conventions.

DEFAULT |
| Optional
Value to set parameter to if it does not exist.