2010-03-11 48 views
3

在ColdFusion的版本9,我有在Index.cfm如下:的Application.cfc內置變量

<cfdump var="#Application#"> 

但我發現了後面的唯一的事情就是與applicationName的一個結構 - 沒有其他變量如rootPath,映射或customTagPath。

下面是我在的Application.cfc:

<cfcomponent output="false"> 
<cfset this.name = left("App_#hash(getCurrentTemplatePath())#",64)> 
<cfset this.applicationTimeout = createTimeSpan(0,8,0,0)> 
<cfset this.sessionManagement=True> 
<cfset this.loginStorage = "session"> 
<cfset this.clientManagement = False> 
<cfset this.setClientCookies = True> 
<cfset this.setDomainCookies = False> 
<cfset this.scriptProtect = "all"> 
<cfset this.rootPath = getDirectoryFromPath(getCurrentTemplatePath())> 
<cfset this.mappings = this.rootPath> 
<cfset this.customTagPaths = "#this.rootPath#Components"> 

回答

5

這是因爲這些設置不在適用範圍。您很困惑應用程序設置與應用程序值。如果您希望它們在應用程序範圍內可用,您可以簡單地將它們設置在onApplicationStart()中。你也可以通過這個範圍看到它們,所以你在那裏複製值。

+0

作爲一個例子,可以這樣做: \t \t 在這種情況下,我只是複製自定義標籤路徑。 – 2010-03-11 14:15:08

+0

所以你說'this.foo'是一個應用程序的值,'application.bar'是一個應用程序的設置?我假設應用程序設置都是在某個地方定義的,值是你想要的任何東西? – 2010-03-11 16:18:31

+0

否 - this.foo將是一個應用程序設置,如果它是有效的。要設置應用程序_variable_,可以使用應用程序範圍。而且,應用程序設置列在此處: http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-750b.html – 2010-03-15 18:29:03