Coldfusion Application.CFC变量不可用

Coldfusion Application.CFC变量不可用,coldfusion,application.cfc,Coldfusion,Application.cfc,在application.cfc中,我定义了一个变量,该变量必须在整个会话中可用 <cfcomponent> <cfset this.applicationTimeout = createTimeSpan(0,4,0,0)> <cfset this.sessionManagement = true> <cfset this.setClientCookies = true> <cfset this.sessionTi

在application.cfc中,我定义了一个变量,该变量必须在整个会话中可用

<cfcomponent>
 <cfset this.applicationTimeout = createTimeSpan(0,4,0,0)>
    <cfset this.sessionManagement = true>
    <cfset this.setClientCookies  = true>
    <cfset this.sessionTimeout    = createTimeSpan(0,0,90,0)>
    <cfset this.setdomaincookies  = true>

    <cfset this.myVar = "Hello">
</cfcomponent>

我尝试了几种方法在.cfm中获取myVar,但都没有成功

Approach 1: <cfoutput>#myVar#</cfoutput>
Approach 2: <cfoutput>#session.myVar#</cfoutput>
Approach 3: <cfoutput>#application.myVar#</cfoutput>
方法1:#myVar#
方法2:#session.myVar#
方法3:#application.myVar#

任何帮助都将不胜感激

您将
应用程序.cfc
范围设置与您自己的
应用程序范围变量混淆

看看本·纳德尔的

基本上,您希望将
application.myVar
放在
OnApplicationStart()
中:



然后,您应该能够在应用程序中将其引用为
application.myVar

,只是为了补充Chris的观点,您缺少了一个名称。据我回忆,如果您不指定名称,ColdFusion将持续重建您的应用程序,我发现缺少变量错误是其副作用。还要注意,名称必须是唯一的,以避免与其他应用程序发生冲突。如果变量必须在整个会话中可用,则会话变量可能更合适。或者你只是没有说出你的意思。
<cfcomponent>
  <cfset this.applicationTimeout = createTimeSpan(0,4,0,0)>
  <cfset this.sessionManagement = true>
  <cfset this.setClientCookies  = true>
  <cfset this.sessionTimeout    = createTimeSpan(0,0,90,0)>
  <cfset this.setdomaincookies  = true>

  <cffunction name="OnApplicationStart">
    <cfset application.myVar = "Hello">
  </cffunction>
</cfcomponent>