AERYU

2006年2月18日

ColdFusion中的继承

ColdFusion中的继承体现在CFCs,用法就是在<cfcomponent>中加入属性extends,简单的说,sub.cfc通过继承parent.cfc,就自动拥有了parent.cfc中的(constructor构造器中的)变量、属性和公开的(public)方法,比如:

<!--- parent.cfc --->
<cfcomponent>
  <cffunction name="getSth">
    <cfreturn "this is parent class">
  </cffunction>
</cfcomponent>

<!--- sub.cfc --->
<cfcomponent extends="parent">
  <cffunction name="getSthFromParent">
    <cfreturn super.getSth()>
  </cffunction>
</cfcomponent>
<!--- test.cfm --->
<cfset Obj = createObject("component", "sub")>
<cfset temp = Obj.getSthFromParent()>
<cfoutput>#temp#</cfoutput>

test.cfm将输出:“this is  parent class”

posted @ 2006-02-22 08:52 AERYU 阅读(273) | 评论 (0)编辑 收藏

使用自定义cfml标签

自定义标签具有一般coldfuion标签一样的性质。他们可以完成下面的任务:

  • 带差数。
  • 可以有标签主体,开始和结束标签。
  • 当遇到开始标签的时候时候 coldfusion可进行特定的操作。
  • 如果有结束标签,Coldfuion又可以进行不同的操作,该操作可以是和仅有开始标签进行的操作不同。
  • 在自定义标签里面可以包含任何coldfusion页面里合法的元素,包括Coldfusion内建标签,自定义标签,甚至JSP标签或者Javascript代码。
  • 允许递归调用,就是说,如果设计恰当,一个自定义标签内部可以调用本身。
  • 通过全局变量向调用页面返回结果,但是自定义标签不能象函数那样直接返回结果。

虽然自定义标签和被 cfincluede标签引用的页面都是coldfuion页面,但是coldfuion对他们的处理方式是不同的。 当页面调用一个自定义标签,该页面的代码将暂时停止执行知道自定义标签内的代码全部被执行完。 当自定义标签的代码执行完毕,将返回到调用该标签的页面,继续执行该页面的代码。 下面的图例示范了这一过程。 箭头表示coldfuion对页面执行的流程。

4.1、调用自定义cfml标签

不像内建标签,你可以通过下面三种方法调用自定义的cfml标签:

  • 直接调用。
  • 使用cfmodule标签调用。
  • 使用cfimport标签调用标签库目录。

直接调用一个cfml自定义标签,只需要把改标签所在的cfm文件的文件名去掉.cfm的扩展名,在前面加上cf_前缀,然后放到尖括号<>里就行了。 比如说,如果用来存放自定义标签代码的文件名是mytag.cfm,我们可以用下面的方式来直接调用该标签:

<cf_myTag>

同时只要给标签加上斜杠(/),就可以构成一个结束的标签:

</cf_myTag>

posted @ 2006-02-20 15:58 AERYU 阅读(604) | 评论 (0)编辑 收藏

CFM中一些标记

§标记 §描述
【A】
<CFABORT> 立即停止对一个ClodFusion模板的处理
<CFAPPLET> 以<CFFORM>格式嵌入用户提供的JAVA小程序
<CFAPPLICATION> 定义一个应用程序的作用域,并指定一些应用程序配置
<CFASSOCIATE> 将子标记(subtags或child tags)与基础标记关联
<CFAUTHENTICATE> 在安全语境中验证用户,为应用程序定义一个安全的语境
【B】
<CFBREAK> 打断循环进程,与<CFABORT>不同,不阻止ClodFusion处理
【C】
<CFCACHE> 改进页面的执行,在页面中,每次页面中,每次页面要求时都不需要动态创建内容,相反,ClodFusion会返回在先前的过程中创建的静态HTML输出
<CFCASE> 在<CFSWITCH>块内指定case语句
<CFCHTCH> 在<CFTRY>块中创建捕捉块来捕捉错误
<CFCOL> 在<CFTABLE>HTML表中指定列
<CFCOLLECTION> 程序化地创建和管理Verity集合
<CFCONTENT> 设置MIN类型,以便能将非HTML格式的文档发送至客户浏览器
<CFCOOKIE> 在客户浏览器上设置cookie和持久的客户端变量
【D】
<CFDEFAULTCASE> 在<CFSWITCH>块内制定默认的case语句
<CFDIRECTORY> 获取目录列表并处理目录
<CFDUMP> 输出简单变量、查询、结构、数组和用来调试的序列化WDDX包的内容
【E】
<CFELSE> <CFIF>语句的else部分
<CFELSEIF> <CFIF>语句的else if部分
<CFERROR> 覆盖标准的ClodFusion错误消息,并用指定的特殊错误处理模板来替换它
<CFEXECUTE> 在ClodFusion服务器机器上执行处理
<CFEXIT> 终止自定义标记的处理,而不终止调用模板的处理
【F】
<CFFILE> 执行文件管理操作,包含在浏览器中上载文件;移动、重命名、复制和删除文件;以及读写文件
<CFFLUSH> 清空ClodFusion的输出缓冲,将内容发送回Web浏览器
<CFFORM> 能够使用其他标记(<CFGRID>、<CFINPUT>、<CFSelect>、<CFTEXTINPUT>、<CFSLIDER>、<CFTREE>或使用<CFAPPLET>的任何Java applet)
<CFFTP> FTP界面――internet标准文件传输协议
【G】
<CFGRAPH> 动态创建基于Web的数据驱动图表
<CFGRAPHDATA> 提供<CFGRAPH>的数据点
<CFGRID> 创建Java applet数据表格
<CFGRIDCOLUMN> 明确指定<CFGRID>列
<CFGRIDROW> 指定<CFGRID>数据行
<CFGRIDUpdate> 编辑模式下的<CFGRID>后端支持
【H】
<CFHEADER> 控制特定HTTP标题的内容
<CFHTMLHEAD> 在Web页中的标题部分编写文字
<CFHTTP> HTTP界面――Internet标准超文本传输协议
<CFHTTPPARAM> 将参数传递给<CFHTTP>请求
【I】
<CFIF> 执行条件处理
<CFIMPERSONATE> 扮演在安全场景中的另一个用户
<CFINCLUDE> 包含处理过的另一个模板中的内容
<CFINDEX> 用索引数据填充Verity集合
<CFINPUT> 以HTML的格式嵌入JavaScript客户端验证代码
<CFInsert> 在数据库表中添加单行
【L】
<CFLDAP> 与LDAP服务器交互
<CFLOCATION> 将浏览器重新定向到其他的URL上
<CFLOCK> 将互斥或只读锁定放置在一段代码周围
<CFLOG> 生成用户自定义的日志文件
CFLOOP> 实现程序化的循环
【M】
<CFMAIL> 从ColdFusion模板内生成SMTP邮件
<CFMAILPARAM> 指定<CFMAIL>标题或提供文件附件
<CFMODULE> 明确执行自定义标记,声明其详尽或相对的路径
【O】
<CFOBJECT> 在ColdFusion应用程序内使用COM。Java和CORBA对象
<CFOUTPUT> 输出<CFQUERY>的结果和随时的文本,包括将要扩展的变量
【P】
<CFPARAM> 指定参数的默认值和所需的标记参数
<CFPOP> 在POP3邮箱中获取和处理邮件
<CFPROCESSINGDIRECTIVE> 在起始和结束标记之间压缩空白
<CFPROCPARAM> 将参数传递到调用的<CFSTOREDPROC>存储过程中,并从该过程中获取参数
<CFPROCRESULT> 指定结果设置来获取调用的,CFSTOREDPROC>存储过程
【Q】
<CFQUERY> 将SQL语句提交给数据源或其他查询,该数据源或者是先前配置好的,或者是动态生成的
<CFQUERYPARAM> 定义<CFQUERY>查询参数和它们的数据类型
【R】
<CFREGISTRY> 直接处理系统Registry
<CFREPORT> 用Crystal Reports Prefessional报表生成程序创建的报告界面
<CFRETHROW> 在<CFCATCH>块内迫使当前错误再次被调用
【S】
<CFSAVECONTENT> 在变量中保存页面的输出或页面的部分
<CFSCHEDULE> 程序化地创建、更新、删除和执行ClodFusion Administrator调度程序中的任务
<CFSCRIPT> 标记ColdFusion脚本块
<CFSEARCH> 执行对Verity集合的搜索(与<CFQUERY>对ODBC数据源执行搜索的方法大致相同)
<CFSelect> 简化创建数据驱动<Select>表单控件的过程
<CFSERVLET> 执行在JRun服务器上运行的Java Servlet
<CFSERVLETPARAM> 通过值或引用将参数传递到在JRun服务器上运行的Java Servlet所调用的<CFSERVLET>
<CFSET> 为变量分配一个值
<CFSETTING> 控制页面处理的各个方面,例如在页面中控制HTML代码的输出,或者启用和禁用调试输出
<CFSILENT> 压缩生成的输出
<CFSLIDER> 创建一个Java applet slider控件
<CFSTOREDPROC> 调用SQL存储工程
<CFSWITCH> 创建ColdFusion开关语句
【T】
<CFTABLE> 自动创建一个完整的数据驱动型HTML<TABLE>
<CFTEXTINPUT> 创建一个Java applet文字输入控件
<CFTHROW> 在<CFTRY>块中强制一个错误条件
<CFTRANSACTION> 将多个<CFQUERY>用在一个事务处理中
<CFTREE> 创建Java applet树控件
<CFTREEITEM> 为<CFTREE>树控件指定树元素
<CFTRY> 捕捉由ColdFusion或明确带有<CFTHROW>或<CFRETHROW>的异常
【U】
<CFUpdate> 更新数据库表中的单行
【W】
<CFWDDX> 将ColdFusion数据结构序列化和菲序列化化为基于XML的WDDX格式

posted @ 2006-02-18 15:22 AERYU 阅读(636) | 评论 (0)编辑 收藏

几种获取提交框提交的方法

在我们对数据进行添加修改操作的时候,我们经常会用到form提交框,有的时候我们会习惯将提交框利用action属性提交到一个固定的页面进行脚本操作,而有些情况我们又希望在提交框页面直接执行操作脚本。这就涉及到一个问题,我们什么时候才能够确认操作人员进行了信息提交呢?以下我们例举几种方式大家可以参考。

由于form的提交方式有两种,即method为post或get,我们需要针对这两种情况进行不同的处理。

针对Post情况:

<cfif StructKeyExists(form, "submit")>
Form_StructKeyExists:Yes
<cfelse>
Form_StructKeyExists:No
</cfif>
<br>
<cfif ParameterExists(form.submit)>
Form_ParameterExists:Yes
<cfelse>
Form_ParameterExists:No
</cfif>
<br>
<cfif isDefined("form.submit")>
Form_isDefined:Yes
<cfelse>
Form_isDefined:No
</cfif>

<form method="post">
<input type="submit" name="submit" value="submit">
</form>

针对Get情况:

<cfif StructKeyExists(URL,"submit")>
URL_StructKeyExists:Yes
<cfelse>
URL_StructKeyExists:No
</cfif>
<br />
<cfif ParameterExists(URL.submit)>
URL_ParameterExists:Yes
<cfelse>
URL_ParameterExists:No
</cfif>
<br>
<cfif isDefined("URL.submit")>
URL_isDefined:Yes
<cfelse>
URL_isDefined:No
</cfif>

<form method="get">
<input type="submit" name="submit" value="submit">
</form>

posted @ 2006-02-18 15:09 AERYU 阅读(560) | 评论 (0)编辑 收藏

COLDFUSION常用函数

字符串操作函数有以下几种,find,findnocase,findoneof,replace,compare

Find(substring, string [, start ]),FindNoCase(substring, string [, start ])

find函数的意思是找出substring在string中的起始位置,返回一個数字,如果沒有找到,就返回0。这个函数是case sensitive的,就是说是区分大小写的

FindOneOf(set, string [, start ]),此函数返回set中任意一个字符在string首先出現的位置,也就是说set中的单一字符最先在string中出现的位置,如果沒有,則返回0。這个函数是大小写敏感的。

Compare(string1, string2),是字符串对比。如果两面个字符串完全相同,則返回0。如果不同,則計算其ASCII值,进行比较。如果string1比string2小,則返回-1;反之則返回1。此函数是大小写敏感的。

Replace(string, substring1, substring2 [, scope ]),字符串替换函数,将string中的substring1替换成substring2,這个用法和ASP中的replace一样。scope代表替换域,比如说all代表全部替换。

posted @ 2006-02-18 14:50 AERYU 阅读(1264) | 评论 (0)编辑 收藏

<2006年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011

导航

统计

常用链接

留言簿(4)

随笔档案

文章分类

文章档案

新闻档案

configuration

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜