适合读者对象: 有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¶meter=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是相同的,但需要注意的是数据类型的转换.
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器