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

在Coldfusion中传递具有属性的类/组件,coldfusion,coldfusion-9,Coldfusion,Coldfusion 9,我是CF新手,来自.NET背景。我想知道在以下情况下,最佳实践类型是什么 假设我有一个组件,car.cfc,我在这个组件中有一个函数,它需要以下属性: <cfcomponent> <cfproperty name="Name" /> <cfproperty name="Model" /> <cfproperty name="Make" /> <cffunction name="BuildCarXML">

我是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>

#参数.car.Name#
最后,我从cfm页面调用此函数:

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

cfcCar=CreateObject(“car”);
cfcCar.Name=“AU”;
我的问题是,这是正确的/最好的方法吗?


<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 = CreateObject("car");
    cfcCar.Name="AU";
</cfscript>
<cfdump var="#cfcCar.BuildCarXML(cfcCar)#">
<cfscript>
    cfcCar = new Car();
    cfcCar.setName("AU");
    writeDump(cfcCar.BuildCarXML());
</cfscript>

cfcCar=新车();
cfcCar.setName(“AU”);
writeDump(cfcCar.BuildCarXML());

如果您还想验证您正在构建的xml是否真的是有效的xml,您可以考虑使用
。我使用的是cfxml,我将打开另一个关于它与savecontent的问题。好的,使用
toString()
您正在CF中构建一个xml对象。因此,如果您想执行
xmlsearch(),那么就更容易了
,或通过API对其进行操作。但是,您当前的
方法会更快,但请注意意外的空白,尤其是在开始时,可能会破坏一些xml解析器。我正在尝试构建一个xml文件,但它被拆分为多个函数。见我的问题:谢谢