如何在CFC中动态返回隐式设置属性?

时间:2011-10-05 21:16:49

标签: coldfusion getter cfc

我有一个CFC,其属性我想通过一个函数返回:

public string function getApplicationSetting(required string setting)
{
    return myCFC.getSetting()
}

问题是Setting需要是动态的。如果它是一个结构,我可以这样做:

return myCFC.variables[arguments.setting]

换句话说,Setting中的getSetting()需要反映传入的参数。我接近这个错吗?有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

假设您在ColdFusion 8中,您将需要查看ColdFusion中的onMissingMethod()函数。

像这样的未经测试的示例我刚刚写了:

<cffunction name="onMissingMethod"> 
    <cfargument name="missingMethodName" type="string"> 
    <cfargument name="missingMethodArguments" type="struct"> 

    <cfif left(arguments.missingMethodName, 3) eq "get">
        <cfreturn variables[right(arguments.missingMethodName, len(arguments.missingMethodName)-3)] />
    </cfif>

</cffunction>

如果您在ColdFusion 9中,那么如果您正确定义属性,则隐式getter已经成为交易的一部分。

Component Person accessors=true {
    property firstname;
    property lastname;
    property age;
    property city;
    property state;
}

上面的组件将自动具有getLastname(),getFirstname()等

参考:http://www.rupeshk.org/blog/index.php/2009/07/coldfusion-9-implicitgenerated-cfc-methods/