根据标题 - ColdFusion 中的休息组件可以访问Application
范围吗?我最初的测试似乎表明它不能,但它在 Railo/Lucee 中肯定可以 - 所以我想知道我是否做错了什么?
当然,可以说没有 CFC 应该访问Application
范围,因为它破坏了封装,但我认为 REST 组件是少数需要这样做的实例之一。
奇怪的是,如果我尝试返回一个Application
不存在的作用域变量,我会收到我期望的消息:
Element FOO is undefined in APPLICATION.
然而,如果我尝试返回一个确实Application
存在的作用域变量,我会得到以下信息 - 表明该作用域在此上下文中不可用:Application
Variable APPLICATION is undefined.
在这一点上,这个问题还没有实际意义——CF 的 REST 实现非常繁琐,以至于我想我要转向 Taffy——但 Railo/Lucee 的工作比较好,我不能忽视我已经搞砸了。
下面是一些测试代码,有兴趣的朋友可以参考一下:
<cfcomponent
output = "false"
rest = "true"
restpath = "/hello/"
>
<cffunction
name = "world"
returntype = "string"
httpmethod = "GET"
access = "remote"
>
<cfreturn Application.Foo />
</cffunction>
</cfcomponent>