您的位置: 首页 > 技术文档 > 网络编程 > 常见问题之CF的语言 - CFML
纯 jsp 操作服务器上的文本文件 回到列表 常见问题之CF的配置与管理
 常见问题之CF的语言 - CFML

作者:Ben Forta 时间: 2003-09-17 文档类型:转载 来自:cffaq.com

1: 到底什么时候该用#符号把变量和表达式围起来? 
  在CFML中,#是用来把ColdFusion变量或表达式从字符串中区分开的符号。可以把<CFOUTPUT> 和 </CFOUTPUT>当中的内容当成一个字符串,其中的变量或表达式必须用#围起来,ColdFusion在处理是就会对其做相应的处理。但是,在标签里,所有的数据都被当作变量或表达式而不是字符串,因此不需要#(如:<CFSET x=y+1>)。所以只有在ColdFusion把数据当成字符串时才要用#把变量或表达式区分开。
 
2: 在HTML中用#表示颜色时(如<CFOUTPUT><hr color="#FF0000">...</CFOUTPUT>),ColdFusion会出错,如何解决? 
  #在ColdFusion有其特殊的意义,是用来把变量和表达式从字符串中区分开的。而且必须配对使用,(如<CFOUTPUT>#now()#</CFOUTPUT>)如果ColdFusion发现只有一个#的话就报错,解决的方法时用两个#来转义,如:<CFOUTPUT><hr color="##FF0000">...</CFOUTPUT>这样就没问题了。
 
3: 为什么有时候在输出的HTML页面里我得到的是#var#而不是实际的变量? 
  大多数情况下是因为你忘了用<CFOUTPUT> 和 </CFOUTPUT>标签。
 
4: Verity是用来干什么的? 
  Verity是一个全文搜索引擎。用来实现灵活快速的对特定文字进行搜索。ColdFusion中的Verity有两种使用方法:1)使用Verity对硬盘上的文件按指定内容进行搜索(包括文本文件,MS Word文档等),2)Verity也可以对数据库中的记录进行搜索(特别是对文字内容校多的字段)。
要使用Verity,请参考ColdFusion中的<CFSEARCH>标签。
 
5: CFML条件判断标签可以嵌套使用吗? 
  CFML的条件判断和流程控制标签(如<CFIF>,<CFLOOP>)可以被嵌套使用,但过多的嵌套会影响执行速度,所以尽量避免不必要的嵌套.
 
6: 在ColdFusion中使用队列(lists)时,为什么空的元素会被忽略? 
  ColdFusion队列和CSV的有些区别,ColdFusion会忽略空的队列元素,如:ListLen("a,b,,d,e")会返回4而不是5,执行ListGetAt("a,b,,d,e",5)就会报错。在这种情况下,可以先用Replace()函数把所有的",,"(逗号 逗号)替换为", ,"(逗号 空格 逗号)。空格是一个能被ColdFusion识别的队列元素。
 
7: 什么时候要在<CFQUERY>内的SQL语句中用到引号? 
  所有写在<CFQUERY>和</CFQUERY>中的内容都会被传送到数据库进行处理,和CFML不一样,SQL不会对变量自动转型,在写SQL语句时必须严格遵守SQL语句的规范。所有字符串(包括被用作字符串的变量)都必须用单引号围起来,而数值不能用引号围起来,所用到的日期和时间也都必须符合相应的格式。
 
8: 我该应用 <CFINSERT> 和 <CFUPDATE> 标签吗? 
  当然可以,而且条件许可的话,没有理由不去用。不过,要注意的是使用这些标签有很大的限制。它们只能和FORM表单用在一起,且表单中的元素必须和数据库中的字段使用相同的名称,另外也无法象标准SQL中那样的功能强大,当用<CFUPDATE>时,还必须在表单中指明关键字段。
 
9: 我的邮件服务器在发送邮件时需要认证,在用ColdFusion发邮件时我如何能发送认证信息? 
  从ColdFusion MX 6.1开始,ColdFusion支持SMTP的认证。你可以在<CFMAIL>标签中提供相应的认证信息,或在ColdFusion管理界面中用以下的格式提供认证信息:user:password@hostname
 
10: 能不能在同一邮件中生成普通文本和HTML超文本两种不同的信息? 
  从ColdFusion MX 6.1开始用新的 <CFMAILPART>标签即可。请参考下面的代码。
<CFMAIL TO="..." FROM="..." SUBJECT="...">
   <CFMAILPART TYPE="text">
  普通文本信息。。。   </CFMAILPART>
   <CFMAILPART TYPE="html">
   <B>超文本信息。。。</B>
   </CFMAILPART>
</CFMAIL>


11: 我想发送邮件给一邮件组用户,我如何才能跟踪邮件的发送结果?如失败或者被拒绝。 
  <CFMAIL>中有一个FAILTO属性,可以用来指定一个邮件地址,在遇到邮件发送失败的情况时,ColdFusion会向此邮件地址发送一个失败通知。

<CFMAIL TO="#email#"
        FROM="admin@myhost.com"
        FAILTO="listadmin@myhost.com" ...>
...
</CFMAIL>

 
12: 怎么才能得到一个文件的大小,最后修改的日期和时间? 
  <CFDIRECTORY>可以用来访问ColdFusion所在服务器上的文件目录, 其中的ACTION="list" 参数可以帮你获得这些信息。
 
 
13: ColdFusion可以访问客户机上的文件吗? 
  不可以,ColdFusions是运行在服务器端的,不能在客户机端做任何操作。ColdFusion只能通过客户端的浏览器获得一些客户机信息。所以ColdFusion不能访问处理客户机端的任何文件,除非在上传到服务器端以后。
  
14: 如何把客户端的文件传递给ColdFusion? 
  最安全的方法是通过客户的浏览器使用HTTP文件上传功能。ColdFusion的确可以通过HTTP或FTP访问网络资源,但这要求被访问的一端有相应的HTTP或FTP服务器。这在一般的客户端都是没有的。
  
15: 如何写一段能用来让客户上传文件的表单代码? 
  创建一个表单,指定表单的ENCTYPE属性为"multiform/form-data",添加一个表单元素,类型为“文件”(TYPE="file")。这段代码在客户端显示的时候,客户会看到相应的操作界面来选择要上传的文件,当这个表单被递交的时候,文件就会被上传到服务器端。
<FORM ACTION="process.cfm"
      ENCTYPE="multipart/form-data"
      METHOD="post">
File: <INPUT TYPE="file" NAME="FileToUpload">
<BR>
<INPUT TYPE="submit" VALUE="Upload">
 
 
16: 如何访问并处理上传的文件? 
  通过客户端表单上传的文件可以由<CFFILE ACTION="upload"> 标签来访问处理。通过此标签,可以对上传的文件进行处理,如保存,改名,限制上传文件类型等。
 
17: REQUEST有效的有效范围是什么? 
  和Variables一样,Request只能在一个页面处理请求中有效(同Application或Session对比)。但它们的区别在于,Request同时还能被同一页面处理过程中所用到的其它文件所访问,如Custom Tags。
  
18: 如何在用户关闭浏览器后马上结束session变量 
  在ColdFusion MX中,通过改变ColdFusion管理员界面中的一个设置,就能轻易实现:进入Memory Variabes菜单,选中Use J2EE session variables选项。
在MX以前的版本中,ColdFusion Session变量使用cookies(CFID和CFTOKEN)来定位每一个用户。缺省的情况下,这些Cookies留在客户端的硬盘上,即使用户关闭浏览器。要避免这种情况,这需要重写这些Cookies让它们在浏览器关闭之后过期就可以了。请参考下面的代码。

<CFCOOKIE NAME="cfid" VALUE="#SESSION.cfid#">
<CFCOOKIE NAME="cftoken" VALUE="#SESSION.cftoken#">
 
 
19: 什么时候需要用到<CFLOCK> 
  <CFLOCK>是用来控制对一段代码或变量的并发存取的。在早期的ColdFusion版本中,如果不对并发的存取进行控制的话,可能会导致服务器的不稳定。在ColdFusion MX中,这一问题已经得到解决,但还是有理由要使用<CFLOCK>的。首先,有些情况下必须使用<CFLOCK>,如多用户情况下对系统文件的存取。其次,就算对一段代码或变量的并发存取不会导致系统的不稳定,有时也会给你的程序带来一些影响,导致一些奇怪的程序结果。如当对一个application变量进行修改而不把此变量锁定话,用户访问到的可能是一部分新的数据,一部分老的数据。那样程序运行结果可能就不是你预想的那样了。所以当出现类似问题时,还是要用的<CFLOCK>。
 
20: EXCLUSIVE 和 READONLY两种锁定有什么区别? 
  <CFLOCK>支持两种类型的锁定,EXCLUSIVE 和 READONLY。EXCLUSIVE锁定完全防止其它代码的的访问。READONLY锁定并不是一种真正的锁定,只是给一端代码加上一个标记,表示只有当前没有被EXCLUSIVE锁定的时候才能执行。
 
21: 如何才能实现动态变量名呢? 
  窍门是先用""把变量名围起来,然后把要作为动态变量名的部分用##围起来。可以看看下面的例子。
<!--- 设置变量 i 值为 1 --->
<CFSET i=1>
<!--- 创建一个动态的变量名product1--->
<CFSET "product#i#"="apple">
<!--- 显示product1的值--->
<CFOUTPUT>#product1#</CFOUTPUT>
 
22: 如何得到一个拥有动态变量名的变量的值? 
 可以用Evaluate() 函数动态的构造变量名,请看下面的例子。
<!--- Set i --->
<CFSET i=1>
<!--- Display product1 variable --->
<CFOUTPUT>#Evaluate("product#i#")#</CFOUTPUT>

23: 在获得一个Query查询结果之后,如何得到它的字段列表? 
  每个Query查询结果都带有一个叫columnlist的变量,可以用来获得Query的字段列表.如 :queryname.columnlist
 
24: 如何获得接收到的Form或URL变量的列表? 
  在ColdFusion中,接收到的Form或URL变量都是以ColdFusion structures 变量的结构存在的,可以用ColdFusion提供的structures的一些函数来访问处理它们。当然也可以用<CFLOOP>来循环其中的每一个元素。
 
25: 如何直接的访问query数据中的某一个数据? 
  在ColdFusion中,query其实就是sturcture,每条记录就是一个数组。要直接的访问query中的某一条记录中的某一个数据,可以用这种方式:#query.column[row]#。如:想要得到query “products”中的“price”字段的第五条记录,可以用这种表达是式:#products.price[5]#。 这种方法在一些情况下非常有用,如用<CFLOOP>循环处理一个query。
 
26: 如何才能用ColdFusion生成可打印的PDF文档? 
  ColdFusion目前还不能直接生成PDF文档。但有一些第三方的产品可以用来实现这些功能。如ActivePDF(http://www.activepdf.com/

出处:cffaq.com
责任编辑:蓝色

◎进入论坛网络编程版块参加讨论

相关文章 更多相关链接
深入研究高性能的 CFMX 应用 II
WSDL之偷天換日
Macromedia ColdFusionMX 教程
FWMX系列:数据驱动图形向导
常见问题之CF的配置与管理
作者文章
常见问题之CF的语言 - CFML
常见问题之CF的配置与管理
常见问题之其它技术与CF的结合
常见问题之开始使用CF
常见问题之为什么选择 CF
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2