日期:2010-09-30  浏览次数:20522 次

ColdFusion是一个稳定、可靠的Web应用服务平台。自从1995年Allaire公司第一次发布ColdFusion以来,它已经成功地证
明了自己优秀的可伸缩性、跨平台能力,成为Web应用开发领域的主流力量之一。因此,作为Web应用开发者我们至少应该

对ColdFusion有一个基本的了解。

一、脚本基础
作 者 : 仙人掌工作室

ColdFusion使用的服务器端脚本语言称为Cold Fusion Markup Language(CFML,ColdFusion标签语言)。CFML的语
法以HTML标记语法为基础,这是为了方便那些已经熟悉HTML的开发者学习CFML。虽然了解一些HTML知识有助于理解CFML,
但这并不是必需的。另外应该注意的是,不管CFML这个名字意味着什么,CFML远远不止是一种标签语言——它是一种功能
完备的服务器端脚本语言,其功能的强大和丰富足以与ASP中的VBScript媲美。

下面是一些CFML基本标记的例子:
< !--- CFML 注释 --- >

< CFIF Trim(UserName) Is "Bob" >
用户名字是Bob.
< CFELSE >
用户名字不是Bob.
< /CFIF >

< CFLOOP index="i" from="0" to="10" >
< CFOUTPUT >
计数器的当前值是#i#< BR >
< /CFOUTPUT >
< /CFLOOP >


第一行是CFML注释。CFML注释和HTML注释非常相似,主要区别在于CFML注释标记要多一个连字号。第二个语句中的
CFIF标记其实是CFML中的If...Then结构,它与VBScript中对应的语句完全相同。第三个语句是循环结构,与VBScript中的
For...Next语句相似。CFLOOP标记也能够用来构造与VBScript Do...While语句类似的循环。CFLOOP标记内的CFOUTPUT类似
于Response.Write——我们可以用它输出变量内的文本。注意变量必须以#符号分隔。

可以看到,CFML支持流行的脚本语言中可以找到的所有控制结构。

二、进一步了解脚本
作 者 : 仙人掌工作室


CFML提供了几个附加的对Web开发者来说非常有用的基本标记。例如下面用到的< CFFORM >标记,它为开发者提供了
高效的表单验证实现方法。在我的印象里,表单验证是Web开发中最麻烦的事情之一,CFFORM标记为我们卸去了这付担子。
验证操作并不是由CFFORM自己完成,而是由CFFORM包含的其他标记完成,这些标记能够自动地生成客户端javascript,由
javascript来完成表单内容的合法性检查。

例如CFFORM内的CFINPUT标记。CFINPUT标记支持各种扩展属性,开发者可以利用这些属性精确地控制对输入内容进行
哪种类型的验证。

例如,开发者可以指定对标记中的内容进行“mm/dd/yyyy” (美国日期)或“dd/mm/yyyy”(欧洲日期)格式验
证,甚至还可以指定输入数据必需是一个合法的信用卡号。这一功能特别实用,它能够剥离输入内容中的空格和连字号,
然后对其进行复杂的验证。所有这一切都不需要开发者编写一行客户端代码。
< !--- 几个简单的表单例子。ColdFusion会自动生成进行验证的
客户端javascript代码。--- >

< !--- 输入信用卡号码的表单 --- >
< CFFORM action="creditcard.cfm" method="POST" name="frmMyForm" >
请输入信用卡号:< BR >
< CFINPUT type="Text" required="YES" validate="creditcard"
< /CFFORM >

< !--- 输入US日期的表单 --- >
< CFFORM action="USDate.cfm" method="POST" name="frmMyForm" >
请输入您的生日(mm/dd/yyyy):< br >
< CFINPUT type="Text" required="YES" validate="date"
< /CFFORM >

< !--- 输入欧洲日期的表单 --- >
< CFFORM action="EuroDate.cfm" method="POST" name="frmMyForm" >
请输入您的生日(dd/mm/yyyy):< br >
< CFINPUT type="Text" required="YES" validate="eurodate"
< /CFFORM >

CFFORM标记也可作为CFSELECT标记的容器。CFSELECT标记允许开发者直接将选择列表绑定到数据库查询结果上。正如
下面的代码所示,实现这个功能的代码非常简洁紧凑。依我看来,使用CFSELECT标记的实现比ASP实现同样的功能更加快
速,也具有更好的可读性。

作者:飞鹰