Used
only inside the cfswitch tag body. Contains
code to execute when the expression specified in the cfswitch tag
has one or more specific values.
Flow-control tags
<cfcase
value = "value|delimited set of values"
delimiters = "delimiter characters">
cfdefaultcase, cfswitch; cfswitch,
cfcase, and cfdefaultcase in the Developing ColdFusion Applications
ColdFusion
8: Changed the way ColdFusion parses cfcase values.
Previously, cfcase tags with numeric value dates
did not return expected results. For example, <cfcase value="00"> and <cfcase value="0A> were
both evaluated to 0. The value "0A" was treated
as a date and converted to 0 number of days from 12/30/1899. The
value "00" was also evaluated to the value 0. This caused the exception
“Context validation error for tag CFCASE. The CFSWITCH has a duplicate
CFCASE for value "0.0".” The cfswitch tag now returns
the expected result.
Attribute |
Req/Opt |
Default |
Description |
|---|---|---|---|
|
Required |
The value or values that the |
|
|
Optional |
|
Specifies the delimiter character or characters that separate multiple values to match. If you specify multiple delimiter characters, you can use any of them to separate the values to be matched. |
The contents
of the cfcase tag body executes only if the expression attribute
of the cfswitch tag evaluates to a value specified
by the value attribute. The contents of the cfcase tag
body can include HTML and text, and CFML tags, functions, variables,
and expressions. You do not have to explicitly break out of the cfcase tag,
as you do in some languages.
One cfcase tag
can match multiple expression values. To do this,
separate the matching values with the default value of the delimiter
character. For example the following line matches "red", "blue",
or "green":
<cfcase value="red,blue,green">
You
can use the delimiter attribute to specify one
or more delimiters to use in place of the comma. For example, the
following line matches "cargo, live", "cargo, liquid", and "cargo,
solid":
<cfcase value="cargo, live;cargo, liquid-cargo, solid" delimiters=";-">
The
following example displays a grade based on a 1-10 score. Several
of the cfcase tags match more than one score. For
simplicity, the example sets the score to 7.
<cfset score="7">
<cfswitch expression="#score#">
<cfcase value="10">
<cfset grade="A">
</cfcase>
<cfcase value="9;8" delimiters=";">
<cfset grade="B">
</cfcase>
<cfcase value="7;6" delimiters=";">
<cfset grade="C">
</cfcase>
<cfcase value="5;4;" delimiters=";">
<cfset grade="D">
</cfcase>
<cfdefaultcase>
<cfset grade="F">
</cfdefaultcase>
</cfswitch>
<cfoutput>
Your grade is #grade#
</cfoutput>