0

私は自分のcfmにこのようなものを持っています

<CFModule name="MyModule"
    someParam_one="#something.one#"
    someParam_two="#something.two#"
    someParam_etc="etc_etc_etc"/>

そして、私のモジュール内には、

<CFSet param_name = "someParam_one">
...
evaluate("attributes." & param_name)

ほとんどのサーバーで、これは機能します。しかし、私たちのサーバーの1つで、

パラメータATTRIBUTES.SOMEPARAM_NAME の解決中にエラーが発生しました

理由はありますか?

ありがとう

4

4 に答える 4

3

someParam_oneが実際に作成されていることを確認しましたか?たとえば、次のようなことをすると、次のようになります。

<cfset foo = myObject.getSomething() />

getSomethingはvoid値を返すか、何も返さないJava関数を実行します。そのCFはそれにチョークします。変数は「定義済み」になるため、アプリケーションは考えているように見えますが、変数にアクセスしようとするとエラーがスローされます。したがって、問題を追跡してキャッチするには、次の手順を実行します。

  1. 属性スコープをダンプして、必要なものが実際にそこにあることを確認します。

  2. 変数にアクセスする前に、StructKeyExists(Attributes、param_name)を実行してください。

  3. 評価を取り除き、代わりにAttributes[param_name]を使用してください

于 2009-10-08T12:18:25.410 に答える
1

わかりました、私たちは本当にばかげたことをしました:-)

これらのファイルの 2 つのセットを展開し、1 つが更新され、もう 1 つが更新されなかったため、エラーが発生しました。

ご助力いただきありがとうございます。

于 2009-10-21T02:28:31.523 に答える
1

暗闇でのショット:

CFMX には、CFC 内からテンプレートへの CFMODULE 呼び出しを行う (またはカスタム タグを使用する) 場合、そのテンプレートが CALLER スコープを使用してデータを返す場合、そのデータが CFC 関数で使用できないというバグがあります。これはバグ 51067 であり、VARIABLES スコープのバグ 45138 に関連しています。

CFMODULE に関する CFMX 6 ドキュメントのユーザー コメントに記載されています。

于 2009-10-08T08:17:20.793 に答える