2017-09-12 27 views
2

私はアプリケーション内のいくつかのプログラムで必要とされる "conv"という関数を持っています。そうではなく、各プログラムにインクルードするよりも、私はこのように見えたのApplication.cfmにそれを置く:ColdFusion Application.cfm cfincludeが動作しない

<cfapplication name = "Moxware" sessionmanagement = "Yes"> 
<cfset lang = "LU"> 
<cfset x127 = Chr(127)> 
<cfset mmox = 'Moxware'> 
<cfinclude template="conv.cfc"> 

を私は「コンバージョン」機能を使用したプログラムのいずれかを実行したとき(conv.cfcであります)関数convが見つかりませんでした。

<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がテストされ、うまく動作することに注意してください。代わりに、このように、includeを使用の

+2

私はそれがどのように動作するとは思わないでしょうか。 cfcのインスタンスを作成し、アプリケーションなどのスコープの1つを使用してそのアプリケーションを利用できるようにします。 –

+0

@ KevinBのコメントはこの質問に対する正解です。 –

+0

もう少しお手伝いできますか?アプリケーションスコープを通じてどのように利用できるようにするのですか? –

答えて

3

...

<cfinclude template="conv.cfc"> 

このように、オブジェクトを作成してみてください...

<cfscript> 
MyObject = createObject("component", "conv"); 
</cfscript> 

あなたは、そのオブジェクト内の機能にアクセスしたい

、これを試してみてください...

0

CFCにCFMページを含めることはできますが、CFCコードをCFCに含めることはできません。だから、これが可能である

...

<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> 

注あなたは、CFCの中でこれをやっている場合に役立つことができます(我々の場合/ myMapping中)のマッピングを使用。マッピングが必要ない場合は、それを削除してください。

おそらく最も良い方法は、CFCをApplication.cfc内からインスタンス化して使用することです。

CFCを取得するマッピングを使用して再度
<cfset myConv = createObject("component", "myMapping.conv").init() /> 

。 .init()は必ずしも必要ではなく、CFCの設定方法によって異なります。

おそらくconvには使いたいメソッドがあります(単一の関数として話しますか?cfcは本質的にオブジェクトなので、まずオブジェクトとして作成してからメソッドを使用します)。次に使用して呼び出します...

myConv.functionName() 

別の言い方をすると、 - Application.cfcはコード内の他の場所と同じです。どのように呼び出され、他の場所で使用されているかは、ここでどのように行うべきかです。唯一のトリックは、カスタムマッピングを作成することによって行うことができるそのCFCへのパスであるかもしれません。

また、古い学校(関数である場合)とカスタムタグを使用することを検討してください。

幸運。

関連する問題