Scope-specific built-in variables

ColdFusion returns variables, such as those returned in a cfdirectory or cfftp operation. A variable is usually referenced by scoping it according to its type: naming it according to the code context in which it is available; for example, Session.varname, or Application.varname.

You use the cflock tag to limit the scope of CFML constructs that modify shared shared data structures, files, and CFXs, to ensure that modifications occur sequentially. For more information, see "cflock", and Developing ColdFusion MX Applications with CFML.

Variable scope

ColdFusion supports the Variables scope. Unscoped variables created with the cfset tag acquire the Variables scope by default. For example, the variable created by the statement <CFSET linguist = Chomsky> can be referenced as #Variables.linguist#

Caller scope

History

New in ColdFusion MX: The Caller scope is accessible as a structure. (In earlier releases, it was not.)

Client variables

The following client variables are read-only:

Client.CFID
Client.CFToken
Client.HitCount
Client.LastVisit
Client.TimeCreated
Client.URLToken

Server variables

Use the Server prefix to reference server variables, as follows:

Server.ColdFusion.ProductName
Server.ColdFusion.ProductVersion
Server.ColdFusion.ProductLevel 
Server.ColdFusion.SerialNumber 
Server.ColdFusion.SupportedLocales
Server.OS.Name 
Server.OS.AdditionalInformation 
Server.OS.Version 
Server.OS.BuildNumber

Application and session variables

To enable application and session variables, use the cfapplication tag. Reference them as follows:

Application.myvariable
Session.myvariable

To ensure that modifications to shared data occur in the intended sequence, use the cflock tag. For more infomation, see "cflock".

The predefined application and session variables are as follows:

Application.ApplicationName
Session.CFID
Session.CFToken
Session.URLToken

Custom tag variables

A ColdFusion custom tag returns the following variables:

ThisTag.ExecutionMode
ThisTag.HasEndTag
ThisTag.GeneratedContent
ThisTag.AssocAttribs[index]

A custom tag can set a Caller variable to provide information to the caller. The Caller variable is set as follows:

<cfset Caller.variable_name = "value">

The calling page can access the variable with the cfoutput tag, as follows:

<cfoutput>#Caller.variable_name#</cfoutput>

Request variable

Request variables store data about the processing of one page request. Request variables store data in a structure that can be passed to nested tags, such as custom tags, and processed once.

To provide information to nested tags, set a Request variable, as follows:

<CFSET Request.field_name1 = "value">
<CFSET Request.field_name2 = "value">
<CFSET Request.field_name3 = "value">
...

Each nested tag can access the variable with the cfoutput tag, as follows:

<CFOUTPUT>#Request.field_name1#</CFOUTPUT>

Form variable

ColdFusion supports the Form variable FieldNames. FieldNames returns the names of the fields on a form. You use it on the action page associated with a form, as follows:

Form.FieldNames

Comments