目录
北极星书库
每当客户请求一个应用程序文件时,ColdFusion根据该文件的CFML标签和HTML标签,动态地生成一个HTML网页。程序流程控制使你可以控制ColdFusion对文件的处理,根据不同的条件生成不同内容的网页。
条件选择
ColdFusion提供了两种处理条件选择的方法:CFSWITCH和CFIF。
使用CFSWITCH,CFCASE和CFDEFAULTCASE
CFSWITCH标签计算一个表达式的值,然后将控制传给与表达式的值相匹配的CFCASE标签。你也可以提供一个CFDEFAULTCASE标签,当所有的CFCASE标签都不能与表达式的值相匹配时,控制转到CFDEFAULTCASE标签。
使用CFSWITCH标签比使用一串CFIF/CFELSEIF标签的效率要高,而且代码易于阅读。但是,CFSWITCH标签的VALUE属性必须是已知的常量。
下面的简单例子显示了CFSWITCH标签的语法:
<CFSWITCH EXPRESSION=#Switch#>
<CFCASE VALUE="4"> Case four </CFCASE>
<CFCASE VALUE="1"> Case one </CFCASE>
<CFCASE VALUE="2"> Case two </CFCASE>
<CFCASE VALUE="3"> Case three </CFCASE>
<CFCASE VALUE="2.5"> Case two and a half </CFCASE>
<CFCASE VALUE="5"> Case five </CFCASE>
<CFCASE VALUE="6"> Case six </CFCASE>
<CFDEFAULTCASE> Default case </CFDEFAULTCASE>
</CFSWITCH>
每个CFCASE标签的VALUE属性都是一个常量,CFSWITCH标签将表达式的值与各个CFCASE标签的VALUE值作比较,并执行相匹配的CFCASE标签内的代码。
使用CFIF,CFELSEIF和CFELSE
你也可以用CFIF,CFELSEIF和CFELSE来选择执行某一段代码。典型的用法如下,其中CFELSE不是必须要的。:
<CFIF value operator value>
... HTML and CFML tags
<CFELSE>
... HTML and CFML tags
</CFIF>
注意,在CFIF中要使用运算符,如IS,IS NOT等,而不是等于号。
例1:根据条件返回查询结果
要检测一个查询是否返回了记录,你可以检测该查询的记录数是否为0:
<CFIF #CustomerSearch.RecordCount# IS 0>
<!--- Inform user that we had no hits --->
<P>Sorry, no customers matching your
criteria were found.</P>
<CFELSE>
<!--- Show the list of customers retrieved --->
<CFOUTPUT Query="Customers">
#FirstName# #LastName# <BR>
</CFOUTPUT>
</CFIF>
在下面的这个例子中,只有客户明确地请求这段代码的内容时(记录在变量showcustomers中),才显示这部分内容:
<CFIF #Form.ShowCustomers# IS "Yes">
Customer List: <P>
<CFOUTPUT Query="Customers">
#FirstName# #LastName# <BR>
</CFOUTPUT>
</CFIF>
例2:根据条件显示记录内容
条件选择标签最强大的功能之一是对查询结果的每条记录作不同的处理。要实现这一点,需把条件选择标签放在CFOUTPUT代码段中。这时,将对查询结果中的每条记录循环执行条件选择语句。这使你可以根据一个记录中是否包含某个字段而作不同的显示。例如,在下面的例中,并非所有的记录都有电话号码,因此,将CFIF放在CFOUTPUT中,确保只有Phone字段不为空时,才显示电话号码的内容。
<CFOUTPUT QUERY="Contacts">
<HR>
Name: #Name# <BR>
Title: #Title# <BR>
<CFIF #Phone# IS NOT "">
Phone: #Phone# <BR>
</CFIF>
</CFOUTPUT>
综合条件选择语句
综合条件选择就是用逻辑运算符将多个条件结合起来。其典型语法为:
<CFIF (value operator value) Boolean Operator
(value operator value) Boolean Operator
(value operator value)>
... HTML and CFML tags
</CFIF>
最常用的逻辑运算符是AND,OR,和NOT。
例如,下面的例子假设一个名为“GetEmployee”的查询返回了一个雇员的有关信息。如果查询结果表明该雇员是销售部的,并且获得了超过5000元的奖金,则显示一条信息。
<CFIF (#GetEmployee.Department# IS "Sales") AND
(#GetEmployee.Bonus# GE 5000)>
<H4>Congratulations on your sales bonus!</H4>
</CFIF>
使用CFELSEIF
CFELSEIF使你能够进行复杂的条件处理,将多个条件结合起来,而不需要使用嵌套的IF语句。其语法为:
<CFIF condition1>
Display this text only if condition1 is true.
<CFELSEIF condition2>
Display this text only if condition1 is false and condition2 is true.
<CFELSEIF condition3>
Display this text only if condition1
and condition2 are false and condition3 is true.
<CFELSE>
Display this if condition1, condition2,
and condition3 are false.
</CFIF>
前页
目录
北极星书库