1

我在受我的 Application.cfc 影响的组件中有一个远程功能 - onRequestStart 要求用户登录。我不想将 .cfc 移动到另一个子文件夹中 - 我希望将其尽可能靠近 .cfm,这样我就不必在编辑 .cfm 时去寻找 cfc。

我认为解决方案是使用 onRequest 和 onCFCRequest 而不是 onRequestStart,但是在尝试使用 onCFCRequest 时,看起来返回值必须是布尔值。所以现在我的远程函数返回一个布尔值,而不是以前的查询。

Rays 的示例显示了输出结果,但是返回结果呢?

这是我尝试过的,但 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;
}
4

1 回答 1

2

你的问题是这个断言:

在试验 onCFCRequest 时,看起来返回值必须是布尔值

这不是真的。

它可以(并且应该)是“任何”,在这种情况下,它将返回被调用方法返回的任何数据类型(序列化以便它可以在 HTTP 响应中传输,natch)。

于 2013-08-05T07:17:19.677 回答