【发布时间】:2015-08-21 01:49:00
【问题描述】:
2 个问题 -
在 CF8 中的 application.cfm 我冷设置了一个全局变量 像这样
<cfset DSN = "dej6_42">
我现在正在尝试适应 CF10/Lucee 中的 Application.cfc,但不知道如何设置相同的变量。
这是我当前的 Application.cfc
<cfcomponent output="false">
<cfset This.name = "My Application">
<cfset This.clientmanagement="True">
<cfset This.loginstorage="Session">
<cfset This.sessionmanagement="True">
<cfset This.sessiontimeout="#createtimespan(0,0,10,0)#">
<cfset This.applicationtimeout="#createtimespan(5,0,0,0)#">
<cfset DSN = "dej6_42">
</cfcomponent>
我试过了
<cfset This.DSN = "dej6_42">
然后尝试在单独的页面中调用
<cfoutput>#Applicaton.DSN#</cfoutput>
我认为根据我的研究,我需要同时使用 application.cfc 和 application.cfm 来完成上述操作。 *edit - 我尝试在 application.cfc 文件的末尾添加一个 include 到 applciation.cfm,但它不起作用。
2 问题。 当我在 Application.cfc 中放置任何标准功能时,我的网站会变成空白页
这是 Application.cfc - 如果我删除 DSN 集下的所有内容,那么它将显示该站点。
<cfcomponent output="false">
<cfset This.name = "My Application">
<cfset This.clientmanagement="True">
<cfset This.loginstorage="Session">
<cfset This.sessionmanagement="True">
<cfset This.sessiontimeout="#createtimespan(0,0,10,0)#">
<cfset This.applicationtimeout="#createtimespan(5,0,0,0)#">
<cfset DSN = "dej6_42">
<cffunction name="onApplicationStart">
</cffunction>
<cffunction name="onApplicationEnd">
</cffunction>
<cffunction name="onRequestStart">
</cffunction>
<cffunction name="onRequest">
</cffunction>
<cffunction name="onRequestEnd">
</cffunction>
<cffunction name="onSessionStart">
</cffunction>
<cffunction name="onSessionEnd">
</cffunction>
<cffunction name="onError">
</cffunction>
</cfcomponent>
【问题讨论】:
-
马特的回答是正确的。 CFC 有自己的变量范围,不与请求的其余部分共享。这是设计和理想的或封装的。另外,请注意“应用程序”范围绝不引用 Application.cfc 中任何范围内设置的任何变量。另外,请阅读 Application.cfc 上的文档,您正在使用空方法拦截您的请求。
-
您可能想阅读一下:learncfinaweek.com/week1/Application_cfc,因为它解释了这些生命周期方法
标签: coldfusion coldfusion-10 railo application.cfc