Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion 使用URL调用方法访问CFC中的变量_Coldfusion_Scope_Instance_Cfc - Fatal编程技术网

Coldfusion 使用URL调用方法访问CFC中的变量

Coldfusion 使用URL调用方法访问CFC中的变量,coldfusion,scope,instance,cfc,Coldfusion,Scope,Instance,Cfc,我的Application.cfm中有一个变量,用于存储CFQuery的数据源 <cfset mydatasource= 'somedatasorce'> 我可以在任何普通cfm页面中使用它,如下所示: <cfset any_var = #mydatasource#> 我有一个调用cfc的cfm页面,它动态地构建查询。这是CFC的URL调用方法 我无法使用上述语句访问CFC中的“mydatasource”。它说“mydatasource”未定义。我尝试将其存储

我的Application.cfm中有一个变量,用于存储CFQuery的数据源

<cfset mydatasource= 'somedatasorce'>

我可以在任何普通cfm页面中使用它,如下所示:

<cfset any_var = #mydatasource#>

我有一个调用cfc的cfm页面,它动态地构建查询。这是CFC的URL调用方法

我无法使用上述语句访问CFC中的“mydatasource”。它说“mydatasource”未定义。我尝试将其存储在应用程序范围中,并在CFC中访问,但它再次表示“mydatasource”在“Application”中未定义


通过一点搜索,我发现需要实例化CFC才能访问应用程序范围。但是URL调用方法不会创建实例

我可以使用查询字符串传递数据源,但我正在寻找更好、更安全的替代方法

非常感谢您的任何建议


谢谢!!:)

我在这里向一个旧应用程序添加了许多ajax调用,为了获得一些特定于应用程序的设置,我创建了一个名为App.cfc的文件。它的内容很简单:

<cfcomponent>
<cfscript>
this["datasource"] = "something";
..... and so on .....
</cfscript>
</cfcomponent>

我正在使用的这些旧应用程序有一个名为App的变量结构,它是所有应用程序变量的副本。我看不出为什么在这种情况下,您不能只做一个附加到变量的结构,因为这似乎是您希望数据源之类的东西出现在您的CFM页面上的地方。

我在这里向一个旧应用程序添加了许多ajax调用,为了获得一些特定于应用程序的设置,我创建了一个调用的文件App.cfc。它的内容很简单:

<cfcomponent>
<cfscript>
this["datasource"] = "something";
..... and so on .....
</cfscript>
</cfcomponent>

我正在使用的这些旧应用程序有一个名为App的变量结构,它是所有应用程序变量的副本。我看不出为什么在这种情况下,您不能只做一个附加到变量的结构,因为在您的CFM页面中,您希望数据源之类的东西出现在这里。

您使用的是什么版本的ColdFusion?在ColdFusion 9+中,您可以在Application.cfc中使用
this.datasource='dsname'
来设置一个“默认”数据源,该数据源将用于任何
cfquery
或ORM操作。“我发现需要实例化cfc才能访问应用程序范围。但是URL调用方法不会创建实例。”你在哪里读到的?我相当肯定这不是真的。然而@ScottStroz的答案可能是这里更可取的方法。它是CF9,但我不能使用Application.CFC文件。我们可以在Application.cfm文件中设置数据源吗?不确定。试试看,让我们知道它是否有效。顺便说一句,以神圣的名义,为什么您使用CF9而不使用Application.cfc?现在我想了想,我相当肯定
this.datasource
将只在Application.cfc中工作。您可以在Application.cfm中尝试的另一件事是设置
request.datasource
,您应该能够在远程调用的CFC中访问它。您使用的是哪个版本的ColdFusion?在ColdFusion 9+中,您可以在Application.cfc中使用
this.datasource='dsname'
来设置一个“默认”数据源,该数据源将用于任何
cfquery
或ORM操作。“我发现需要实例化cfc才能访问应用程序范围。但是URL调用方法不会创建实例。”你在哪里读到的?我相当肯定这不是真的。然而@ScottStroz的答案可能是这里更可取的方法。它是CF9,但我不能使用Application.CFC文件。我们可以在Application.cfm文件中设置数据源吗?不确定。试试看,让我们知道它是否有效。顺便说一句,以神圣的名义,为什么您使用CF9而不使用Application.cfc?现在我想了想,我相当肯定
this.datasource
将只在Application.cfc中工作。你可以在Application.cfm中尝试的另一件事是设置
request.datasource
,你应该能够在远程调用的CFC中访问它。像我这样丑陋的人认为漂亮被高估了。像我这样丑陋的人认为漂亮被高估了。