在Coldfusion中传递具有属性的类/组件

时间:2014-02-07 01:33:28

标签: coldfusion coldfusion-9

我是CF新手,来自.NET背景。我想知道以下情况下最佳实践类型是什么。

假设我有一个组件car.cfc,我在这个组件中有一个需要属性的函数:

<cfcomponent>
    <cfproperty name="Name" />
    <cfproperty name="Model" />
    <cfproperty name="Make" />

    <cffunction name="BuildCarXML">
        <cfargument name="car" type="car" />
        <cfsavecontent variable="xmlCar">
            <?xml version="1.0" encoding="UTF-8" ?>
            <car>
               <name>#arguments.car.Name#</name>
            </car>
        </cfsavecontent>
        <cfreturn xmlCar />
    </cffunction>
</cfcomponent>

最后,我从cfm页面调用此函数:

<cfscript>
    cfcCar = CreateObject("car");
    cfcCar.Name="AU";
</cfscript>
<cfdump var="#cfcCar.BuildCarXML(cfcCar)#">

我的问题是,这是正确/最好的方法吗?

1 个答案:

答案 0 :(得分:1)

<cfcomponent accessor="true">
    <cfproperty name="name" />
    <cfproperty name="model" />
    <cfproperty name="make" />

    <cffunction name="BuildCarXML" output="false">
        <cfsavecontent variable="local.xmlCar">
            <cfoutput><?xml version="1.0" encoding="UTF-8" ?>
            <car>
               <name>#variables.name#</name>
            </car></cfoutput>
        </cfsavecontent>
        <cfreturn xmlCar />
    </cffunction>
</cfcomponent>

最后,你从cfm页面调用这个函数:

<cfscript>
    cfcCar = new Car();
    cfcCar.setName("AU");
    writeDump(cfcCar.BuildCarXML());
</cfscript>