我在一个受Application.cfc影响的组件中有一个远程函数 - onRequestStart要求用户登录。我不想将.cfc移动到另一个子文件夹中 - 我希望尽可能接近.cfm,以便在编辑.cfm时不必去寻找cfc。
我认为解决方案是使用onRequest和onCFCRequest而不是onRequestStart,但在试验onCFCRequest时,看起来返回值必须是boolean。所以现在我的远程函数返回一个布尔值而不是它以前的查询。
Rays' example显示输出结果,但返回结果呢?
这是我尝试过的,但ColdFusion拒绝返回值不是布尔值:
public boolean function onCFCRequest(string cfc, string method, struct args) {
local.comp = createObject("component", arguments.cfc);
local.result = evaluate("local.comp.#arguments.method#(argumentCollection=arguments.args)");
return local.result;
}
答案 0 :(得分:2)
你的问题就是这个断言:
在试验onCFCRequest时,它看起来像返回值 是布尔
那不是真的。
它可以(并且应该)是“any”,在这种情况下它将返回被调用方法返回的任何数据类型(序列化,因此它可以在HTTP响应中传输,natch)。