Cfcase的唯一用途是在cfswitch标签的主体内使用。Cfcase中包含的代码将在cfswitch中指定的表达式满足一个或多个指定的值时执行
<cfcase
value = "value|delimited set of values"
delimiters = "delimiter characters">
属性
| 属性 |
必须/可选 |
默认 |
描述 |
|---|---|---|---|
value |
必须 |
|
cfswitch中的表达式需要满足的一个或多个值。指定多个值时,需要用分隔符隔开。这些值必须是简单类型的常量或者常量所组成的表达式,不能是变量。 |
delimiters |
可选 |
,(逗号) |
指定Value是多个值时的分隔符。如果指定了多个分隔符,你可以用其中任意一个来分隔。 |
当cfswitch的expression属性中的表达式的值等于cfcase标签中value指定的值或多个值之一时,将执行cfcase标签主体的代码。cfcase标签主体可以包含HTML代码或者文本,也可以包含CFML标签、函数、变量和表达式。像一些其他语言一样,你不必显式的结束cfcase标签(译者注:但最好还是显示的结束,范例就是这样写的)。
一个cfcase标签可以使表达式与多个值进行匹配,表达式的值等于其中任意一个值,就可以执行标签主题内的语句。将需要匹配的多个值用默认分隔符(逗号)隔开。下面的例子匹配red,blue或者green。
<cfcase value = "red,blue,green">
你也可以用delimiter属性来制定一个或几个分隔符。下面的例子将匹配"cargo,live","cargo,liquid"和"cargo,solid"三个值。
<cfcase value = "cargo,live;cargo,liquid-cargo, solid" delimiters = ";-">
下面的范例根据得分(1-10)来判定等级(A-F)。注意其中有些cfcase标签匹配着多个分值
<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>