第三十章 使用 CSP 进行基于标签的开发 - 控制流
控制流
CSP
标记语言提供了几个标记来促进对页面执行的控制。 虽然不像直接的服务器端标记那样通用,但这些标记可以使某些任务容易完成。
csp:if Tag
<csp:if>
标记,以及<csp:else>
和<csp:elseif>
标记,提供了一种在csp页面中定义条件输出的方法。
<csp:if>
标记具有单个属性、条件,其值是由csp
服务器在运行时计算的ObjectScript
或Basic
表达式(取决于为页面指定的默认语言)。 如果该值为true
,则执行标记的内容。
<csp:if condition='user="Jack"'> Welcome Jack! <csp:elseif condition='user="Jill"'> Welcome Jill! <csp:else> Welcome! </csp:if> 复制代码
csp:while Tag
<csp:while>
标记提供了一种方法,只要给定的服务器端条件为真,就可以重复处理csp
文档的某一部分。
<csp:while>
标记的条件属性包含一个ObjectScript
或Basic
表达式(取决于页面的默认语言),该表达式在提供页面时在csp
服务器上计算。 只要条件的计算结果为true(1)
,就计算csp:while
标记的内容。
<csp:while>
标记通常与对象中的Caché %ResultSet
一起使用,以HTML
显示SQL
查询的结果。 在下面的示例中,<csp:while>
标记的内容(它写出查询的Name
列的值)被重复执行,直到对象的Next
方法中的%ResultSet
返回值FALSE(0)
,这表示结果集的结束。
<script language=SQL name=query> SELECT Name FROM MyApp.Employee ORDER BY Name </script> <csp:while condition="query.Next()"> #(..EscapeHTML(query.Get("Name")))#<BR> </csp:while> 复制代码
使用<csp:while>
标记的计数器属性,可以定义一个计数器变量,该变量初始化为0
(0),并在每次迭代开始时自动增加1
(1)。
例如,这里有一种使用<csp:while>
标记创建5行HTML表的方法:
<table> <csp:while counter="row" condition="row<5"> <tr><td>This is row #(row)#.</td></tr> </csp:while> </table> 复制代码
下面是一个在条件中使用not
操作符(单引号)的例子。 注意,该条件不能包含任何空格,也不包括开始和结束引号。 也可以使用括号(mystr'= " QUIT ")
来声明条件。
<csp:while condition=mystr'="QUIT"> //add code </csp:while> 复制代码
csp:loop Tag:编号列表示例
<csp:loop>
标记提供了重复执行csp
文档中的内容的另一种方法。
<csp:loop>
标记允许定义一个计数器变量(使用它的counter
属性)以及它的起始值、结束值和递增值。 默认的增量值为1
。
例如,可以使用<csp:loop>
标签创建一个包含5项的列表:
<ul> <csp:loop counter="x" FROM="1" TO="5"> <li>Item #(x)# </csp:loop> </ul>