1

我有一个结构如下的测试应用程序:

  • 应用程序.cfc
  • 应用代理.cfc
  • 索引.cfm
  • 子应用程序/
    • 应用程序.cfc
    • 索引.cfm

我希望我的子应用程序从顶级 Application.cfc 继承所有变量和事件。

我已经阅读并实现了Sean Corfield 的用于扩展应用程序组件的 ApplicationProxy 方法,但我无法让它工作,因为当我访问 sub_app/index.cfm 时出现此错误:

Could not find the ColdFusion Component or Interface ApplicationProxy.

从错误中我只能猜测应用程序正在寻找错误的位置,我该如何纠正?

应用程序.cfc:

<cfcomponent name="Application" output="true">

<cfset THIS.name = "testAppA">
<cfset THIS.sessionManagement="Yes">
<cfset THIS.applicationTimeout = createTimeSpan(0,0,10,0)>
<cfset THIS.sessionTimeout = createtimespan(0,0,10,0)>
<cfset THIS.clientManagement = true>
<cfset THIS.clientStorage = "cookie">
<cfset THIS.loginStorage = "cookie">
<cfset THIS.setDomainCookies = false>
<cfset THIS.setClientCookies = true>
<cfset THIS.scriptProtect = true>
<cfset THIS.secureJSON = true> 

<cffunction name="onApplicationStart" returntype="void">

    <cfset APPLICATION.name = "testAppA">
    <cfset APPLICATION.test = "test var">

</cffunction>

<cffunction name="onSessionStart" returntype="void">

    <cfset SESSION.loggedIn = 1>

</cffunction>    

</cfcomponent>

应用代理:

<cfcomponent name="ApplicationProxy" extends="Application">
</cfcomponent>

索引.cfm:

<a href="sub_app/index.cfm">Sub app</a>

sub_app/Application.cfc:

<cfcomponent extends="ApplicationProxy" output="true">

    <!---

            Uses parent Application settings

    --->

</cfcomponent>

sub_app/index.cfm:

<a href="../index.cfm">Parent app</a>

<cfdump var="#Application#">
4

1 回答 1

1

最好的方法是创建 ApplicationProxy.cfc 文件,其中包含您需要继承的所有功能,然后在任何需要的地方扩展 Application.cfc。我很长时间以来一直在使用这种方法,并且这种方法没有问题。

于 2013-06-19T12:58:42.257 回答