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.
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#
New in ColdFusion MX: The Caller scope is accessible as a structure. (In earlier releases, it was not.)
The following client variables are read-only:
Client.CFID
Client.CFToken Client.HitCount Client.LastVisit Client.TimeCreated Client.URLToken
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
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
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 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>
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