我对这个问题有自己的答案,我会发布,但我想看看我是否错过了一个更简单的方法.我有两个应用程序在同一个coldfusion服务器上运行,我想从另一个访问一个应用程序范围.我怎么能这样做?
更新:
在阅读了@Daniel和@Ben的答案之后,我回过头来从子应用程序的角度来解决我的问题,这对我最初的问题来说是一个更好的解决方案.我的答案仍然是访问其他应用程序范围的"快速而肮脏"的方法,但将数据放入服务器范围是一种更好的做法.
我想你应该考虑一下你为什么要这样做......在建筑上这似乎不太合理,即使它是可能的.对于要跨应用程序共享的资源,服务器范围会更好.
您甚至可能想要考虑这两个应用程序是否应该实际上是一个具有两个小子应用程序的应用程序.
我从两个来源整理了我的答案。首先,Ben Nadel对 ColdFusion PageContext 对象的大规模探索(感谢 Ben)。其次,有关与 JSP 页面和 servlet 互操作的ColdFusion 帮助页面。把两者放在一起,我得到这个:
目录结构:
Root
|_ App1
|_ Application.cfc
|_ index.cfm
|_ App2
|_ Application.cfc
|_ index.cfm
Run Code Online (Sandbox Code Playgroud)
应用程序1/应用程序.cfc:
component
{
this.name="App1";
this.application.foo = "bar"
}
Run Code Online (Sandbox Code Playgroud)
应用程序2/应用程序.cfc:
component
{
this.name="App2"
}
Run Code Online (Sandbox Code Playgroud)
应用程序2/index.cfm
<cfscript>
writeDump(getPageContext().getFusionContext().getServletContext().getAttribute('App1'))
</cfscript>
Run Code Online (Sandbox Code Playgroud)
点击App1目录中的index.cfm后,您可以看到app1中的应用程序范围转储到app2的索引中。