CF 10中的可变范围与CF MX7相比
我遇到了我的ColdFusion 10代码的一个奇怪的问题。 我是ColdFusion的新手,对我来说很容易。 奇怪的原因是因为它似乎没有出现在这个平台的旧版本(即MX 7)中。
首先有点信息:
我有两个环境。 ColdFusion 10和ColdFusion MX 7(分别为IIS 7和IIS 5)。 在ColdFusion 10环境中,我有一个具有以下语句的Application.cfc
文件...
<cfset CompanyLogoText = "Acme Company">
此Application.cfc
文件位于Web根目录(mydomain.com)中。 我在mydomain.com/pages/default.cfm
的web根目录的一个子文件夹中也有一个CFM文件。 它包含以下标记...
<cfoutput><p>#CompanyLogoText#</p></cfoutput>
问题
当我导航到mydomain.com/pages/default.cfm
,我收到了来自coldfusion的错误。 错误是“变量COMPANYLOGOTEXT未定义”。
奇怪的部分
我在ColdFusion MX 7中没有收到此错误。唯一的区别是CF MX 7环境使用Application.cfm
文件,但具有相同的准确行。
题
如何获取pages/default.cfm
文件以在CF 10环境中查看我的变量CompanyLogoText
?
这是完整的标记
的Application.cfc
<cfcomponent>
<cfset This.name = "test_cf">
<cfset This.Sessionmanagement="yes">
<cfset This.Sessiontimeout="#createtimespan(0,0,10,0)#">
<cfset This.applicationtimeout="#createtimespan(5,0,0,0)#">
<cfset This.setclientcookies="no" >
<cfset This.clientmanagement="no">
<cffunction name="onApplicationStart">
<cfset CompanyLogoText = "Acme Company">
</cffunction>
<cffunction name="onRequestStart">
<cfargument name="requestname" required=true />
<cfset CompanyLogoText = "Acme Company">
</cffunction>
</cfcomponent>
页/ Default.cfm
<cftry>
<cfoutput><p>#CompanyLogoText#</p></cfoutput>
<cfcatch>
<p>Could not read CompanyLogoText<br/><br/>
<cfoutput>
<br/>Message: #cfcatch.message#
<br/>Details: #cfcatch.detail#.
</cfoutput>
</cfcatch>
</cftry>
这就是Application.cfm
和Application.cfc
之间的区别
使用onRequest()
,设置变量,然后cfinclude
目标文件。 这是分享variables
范围的唯一方法。
https://wikidocs.adobe.com/wiki/display/coldfusionen/onRequest
例如
<cffunction name="onRequest" returnType="void">
<cfargument name="targetPage" type="String" required=true/>
<cfinclude template="globalVars.cfm">
<cfset variables.foo = "bar">
<cfinclude template="#Arguments.targetPage#">
</cffunction>
QUOTE:CF8:从Application.cfm迁移到Application.cfc
将onRequest方法放入设置Variables范围变量的任何代码,并添加一个cfinclude标记,该标记包含由方法的Arguments.Targetpage变量指定的页面。
如上所述,您的application.cfc需要正确格式化。 你最好的选择是给这个阅读并相应地格式化你的.cfc。
http://www.bennadel.com/blog/726-ColdFusion-Application-cfc-Tutorial-And-Application-cfc-Reference.htm
没有看到有答案。 如果在子目录中有一个application.cfm文件,它将覆盖根目录中的application.cfc。 只是一种可能性...
链接地址: http://www.djcxy.com/p/78277.html