What is supported in CFScript

Tag equivalents in CFScript

With ColdFusion 11, you can use all tags inside cfscript.

The following table lists all the tags that supported script-style syntax in ColdFusion. 

Tag CFScript equivalent
cfabort abort
cfbreak break.
cfcase case
cfcatch catch
cfcomponent component
cfcontinue continue
cfcookie Direct assignment of Cookie scope memory-only variables. You cannot use direct assignment to set persistent cookies that are stored on the user system.
cfdefaultcase default
cfdirectory
Only for <Cfdirectory action=list/>
The directory functions DirectoryCreateDirectoryDeleteDirectoryList, and DirectoryRename.
cfdump writedump
cfelse else
cfelseif elseif
cfexit exit
cffile The file functions FileDelete, FileSeek, FileSkipBytes, and FileWriteLine.
cffinally finally
cffunction function
cfimage The Image functions.
cfif if
cfimport import Import in cfscript is only equivalent of <cfimport path="">. 
cfinclude include
cfinterface interface
cflocation location
cflock lock
cflog writelog
cfloop
  • Indexed cfloop: for loops
  • Conditional cfloop: while loops and do while loops
  • Structure cfloop: for in loop. (There is no equivalent for queries, lists, or objects.)
cfobject createobject, new
cfoutput writeoutput
cfparam param
cfprocessingdirective pageencoding
cfproperty property
cfrethrow rethrow
cfreturn

return

cfsavecontent savecontent
cfset Assignment statement x =1; is equivalent of <cfset x =1>
local.x=1; is equivalent of <cfset var x =1>
cfswitch switch
cfthread thread
cfthrow throw
cftrace trace
cftransaction transaction
cftry try

Examples of script-style syntax

The following example loops through a query in CFScript:

... 
<cfscript> 
// Loop through the qGetEmails RecordSet 
for (x = 1; x <= qGetEmails.RecordCount; x=x+1) { 
This_id = qGetEmails.Emails_id[x]; 
This_Subject = qGetEmails.Subject[x]; 
This_RecFrom = qGetEmails.RecFrom[x]; 
This_SentTo = qGetEmails.SentTo[x]; 
This_dReceived = qGetEmails.dReceived[x]; 
This_Body = qGetEmails.Body[x]; 
... // More code goes here. 
} 
</cfscript>

The following examples demonstrate the differences in syntax between tag-style and script-style programming.

cflocation example

Tag-style

<cflocation

url = "URL"

addToken = "yes|no"

statusCode = "300|301|302|303|304|305|307">

Script-style

<cfscript>

cflocation(url = "URL",

addToken = "yes|no",

statusCode = "300|301|302|303|304|305|307")

</cfscript>

cfajaxproxy example

Tag-style

<cfajaxproxy

cfc = "CFC name"

jsclassname = "JavaScript proxy class name">

OR

 <cfajaxproxy

bind = "bind expression"

onError = "JavaScript function name"

onSuccess = "JavaScript function name">

Script-style

<cfscript>

 cfajaxproxy(cfc = "CFC name",

jsclassname = "JavaScript proxy class name")

</cfscript> 

OR 

 <cfscript>

cfajaxproxy

(bind = "bind expression",

onError = "JavaScript function name",

onSuccess = "JavaScript function name")

</cfscript>

cfpdf example

The following example shows the differences between tag-style and script-style syntax when there are child tags present.

Tag-style

<cfpdf action="merge" destination=expandPath(’./MyPDFMerged.pdf’) overwrite=true>

<cfpdfparam source=expandPath(’./MyPDF1.pdf’)>

<cfpdfparam source=expandPath(’./MyPDF2.pdf’)>

 </cfpdf>

Script-style

cfpdf(action="merge", destination=expandPath(’./MyPDFMerged.pdf’), overwrite=true) {

  cfpdfparam(source=expandPath(’./MyPDF1.pdf’));

  cfpdfparam(source=expandPath(’./MyPDF2.pdf’));

  };

Reserved words

In addition to the names of ColdFusion functions and words reserved by ColdFusion expressions (such as NOT, AND, IS, and so on), the following words are reserved in CFScript. Do not use these words as variables or identifiers in your scripting code:

break

do

import

var

case

else

in

while

catch

finally

interface

 

try

for

pageencoding

 

continue

function

return

 

default

if

switch

 

Script functions

For a list of script functions, see Script Functions added in ColdFusion 9.

 Adobe

Get help faster and easier

New user?