首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColdFusion Application.cfm不能正常工作

ColdFusion Application.cfm不能正常工作
EN

Stack Overflow用户
提问于 2017-09-13 06:25:59
回答 2查看 413关注 0票数 3

我有一个名为"conv“的函数,在我的应用程序中的几个程序中都需要它。因此,我没有将其包含在每个程序中,而是将其放入Application.cfm中,如下所示:

代码语言:javascript
复制
<cfapplication name = "Moxware" sessionmanagement = "Yes">  
<cfset lang = "LU">
<cfset x127 = Chr(127)>   
<cfset mmox = 'Moxware'>
<cfinclude template="conv.cfc">

当我使用函数“conv”(在conv.cfc中)运行其中一个程序时,我得到一个错误,即找不到函数conv。

在我在互联网上寻找想法后,我尝试了以下方法:

代码语言:javascript
复制
<cfapplication name = "Moxware" sessionmanagement = "Yes">  
<cfset lang = "LU">
<cfset x127 = Chr(127)>   
<cfset mmox = 'Moxware'>
<cffunction name="onRequestStart" output="true" returntype="void">
   <cfinclude template="conv.cfc">
</cffunction>

这给了我和以前一样的错误信息。

有人能给我解释一下怎么做吗?

请注意,函数conv已经过测试,并且工作正常。

EN

回答 2

Stack Overflow用户

发布于 2017-09-13 09:22:55

不是使用include,而是像这样...

代码语言:javascript
复制
<cfinclude template="conv.cfc">

尝试创建一个对象,就像这样...

代码语言:javascript
复制
<cfscript>
 MyObject = createObject("component", "conv");
</cfscript>

当您想要访问该对象中的函数时,请尝试以下方法...

代码语言:javascript
复制
<cfscript>
 SomeValue = MyObject.MyFunction();
</cfscript>
票数 3
EN

Stack Overflow用户

发布于 2017-09-13 19:42:05

您可以将CFM页面包含到CFC中,但我不认为您可以将CFC代码包含到CFC中。

所以这是可能的..。

代码语言:javascript
复制
<cffunction name="OnRequest" access="public" returntype="void" output="true" hint="Fires after pre page processing is complete.">

    <cfargument name="TargetPage" type="string" required="true" />

    <cfinclude template = "/myMapping/onRequestStart_include.cfm" />

    <cfinclude template = "/myMapping/onRequest_include.cfm" />

    <cfinclude template = "/myMapping/onRequestEnd_include.cfm" />

</cffunction>

注意映射的使用(在我们的例子中是/myMapping),如果你在CFC中做这件事,这会很有帮助。如果不需要映射,就放弃它。

但最好的选择可能是从Application.cfc中实例化您的CFC并使用它。

代码语言:javascript
复制
<cfset myConv = createObject("component", "myMapping.conv").init() />

再次使用映射到达CFC。并不总是需要.init(),这取决于您的CFC是如何设置的。

那么,假设conv有您想要使用的方法(您将其作为一个函数来讨论?一个cfc本质上是一个对象,所以你首先创建它作为一个对象,然后使用它的方法),所以你可以调用,然后使用...

代码语言:javascript
复制
myConv.functionName()

换句话说,Application.cfc与代码中的其他地方没有什么不同。在别处调用和使用它的方式就是您在这里应该如何做。惟一的诀窍可能是通过创建自定义映射来实现对该CFC的路径。

也可以考虑使用老式的方法(如果它只是一个函数),并使用自定义标记。

祝好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46186197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档