CFML教程--创建和使用组件


适合读者对象: 有JavaScript、HTML和ColdFusion基础的读者

使用组件可使代码重用,促进企业化开发合作,[CFC]组件和DCOM,CORBA ,EJB 在类似等级,但要比它们简单方便,

且只能在CF中使用,CFC可以直接供flash调用,和做web服务.

在叙述CFC之前,先介绍一个CFMX的新标签<cfscript>,使用这个标签,你可以像使用JavaScript那样,使用类似

的语法,条件流程等语句,但是和JavaScript不同,cfscript只运行在服务器端,且不能使用<, > ,<= ,>=, != ,== ,
字符串连接使用 &,var仅用在function中,用于声明局部变量,并使用cf的构造器,使用CF的函数,使用CF

的顶级对象(CGI,FORM,URL,Cookie,Request等),<cfscript>不允许包含其它标签,其允许的语法为:

[if, else if, else],[for],[for in],[do while],[while],[try catch ],[function var continue break return]

<cfscript>
//注释这样使用,还可以/* ....*/
a="赋值语句";
b=7;
if (7 eq "7"){
//7=="7" 表达式为true
writeoutput("CF的数据类型是不严谨的!!!");
}else{writeoutput("CF的数据类型是严谨的数据类型");
}
</cfscript>


创建ColdFusion Components 组件由函数和属性的集合组成,在dwmx[Dreamweavermx]中可以,可视化的操作,完成组件的创建,
[方法,是点击组件面板的+,弹出组件定义对话框,在这个面板中可以定义除函数 属性 参数],定义完成后,切换到代码视图,
在函数中添加主体代码,并设定返回值;即可.有关组件定义的例子,请参考:
http://www.blueidea.com/bbs/NewsDetail.asp?GroupName=Flash+%D7%A8%C0%B8&DaysPrune=5&lp=2&id=1159863
CF远程服务实例入门

点击文件/新建 动态 cfc可以新建一个cfc,程序自动完成的代码如下:

<cfcomponent>
<!--- 使用<cfcomponent>定义组件--->
<!--- 使用<cffunction>定义函数--->
<cffunction name="myFunction" access="public" returntype="string">
<!--- 使用<cfargument>定义传递给函数的参数--->
<cfargument name="myArgument" type="string" required="true">
<!--- 函数主体--->
<cfset myResult="foo">
<!--- 返回数值--->
<cfreturn myResult>
</cffunction>
<!--- 可以定义多个函数--->
</cfcomponent>


<!--- 组件的名字就是组件的保存文件名称[无cfc扩展名]推荐的保存位置是webroot目录,
driver:/CFusionMX/CustomTags目录,
使用其它目录也可以,后面的例子中,保存在test目录下.--->

下面定义了一个简单的组件:)简单的不能再简单了!!!保存在flashtest目录中,名字为simp.cfc,调用时候
组件名字就是flashtest.simp


<cfcomponent>
<cffunction name="hello" access="remote" returntype="string" output="true">
<cfscript>time=now();time="你好,现在是" & time;</cfscript>
<cfreturn time>
</cffunction>
<cffunction access="remote" name="urlcall" output="true" returntype="string">
<cfargument name="par1" type="string" required="false" default="">
<cfargument name="par2" type="string" required="false" default="">
<cfscript>
transfer = "你传递的参数1:" & par1 & "参数2:" & par2 ;
</cfscript>
<cfreturn transfer>
</cffunction>
</cfcomponent>


定义好了,现在开始使用这个组件,CFC组件可以有许多种使用方法,比如url方式和form方式,和可以为flash

调用,url方式的方式是: .../cfcomponent.cfc?method=methodname&parameter=parameterValue...

 

从cfscript调用组件:


<cfscript>
obj=createobject("component","flashtest.simp");
result=obj.urlcall("参数数据1","参数数据2");
//传递参数还可以使用这种方式
//result=obj.urlcall(par2="参数数据2",par1="参数数据1");
writeoutput(result);
</cfscript>


从flash调用这个组件,将代码加到第一帧:


nc=new NetConnection();
nc.connect("http://localhost:8500/flashservices/gateway");
obj={};
obj.onResult =function (result) {
trace(result);
}
nc.call("flashtest.simp.urlcall",obj,"传递一个参数","再来一个参数");
//output
/*
你传递的参数1:传递一个参数参数2:再来一个参数
*/

createobject不仅可以使用cfc元件,而且还可以使用java类,ejb,com ,web服务,corba,例:
olemail=createobject("com","cdonts.newmail");
olemail.from="!!!@???.???";...olemail.send();
使用web服务newobject2 = createObject("webservice","http://www.abcd.ef/gh.wsdl");
使用java ejb newobject2 = createObject("java","class");

使用这些外部对象和使用cfc是相同的,但需要注意的是数据类型的转换.

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3