2011-09-20 4 views
0

私はいくつかのコードをいくつか繰り返しているページがあります。コードをテンプレートファイルに組み込み、繰り返しを避けるためにテンプレートファイルを含めました。しかし、私は異常なエラーが発生しています - 通常のデバッグColdFusionエラーが表示されます。 "次の情報はデバッグの目的でウェブサイトの開発者向けです。"と "要求が処理中にエラーが発生しました" ...しかし、通常はエラーメッセージが表示されているセクションには "0"と表示されます。 (スタックトレースセクションを見れば、「java.lang.ArrayIndexOutOfBoundsException:0」...参照)これはどういう意味ですか?奇妙なcoldfusionエラー: "0"

私はこのようなColdFusionのエラーを見たことがないし、それが参照しているものを理解していないという事実のためだけでなく、私は私が最初の場所でエラーになってることに驚いています。ページが正常に動作していたので、コードを別のファイルにコピーし、「cfinclude」を使ってコードを組み込んでいます。私はcfincludeがファイル内のコードをページに直接挿入すると思っていましたが、cfincludeを使ってリテラルコードでは得られないエラーをどのように得ることができますか? cfincludeの仕組みについて私は何が分かりませんか?

更新:問題はネストされたcfoutputであるようです。私は次のようなものを持っています:

<cfoutput group="myGroup"> 
    <cfoutput group="myNestedGroup"> 
     ... lots of code ... 
    </cfoutput> 
</cfoutput> 

これはエラーを投げます。なぜどんなアイデア?

アップデート2:

これは、ColdFusionのバグのようです。誰でも回避策を考えることができますか?

答えて

1

これは本当に明白なことかもしれませんが、私の申し訳はありませんが、cfouputにはクエリ= ""を含める必要があります。

Iは、通常のキー値が実際すなわちanexample [keyValueの】.data1存在しない場合、配列または構造を用いは、ArrayIndexOutOfBoundsExceptionを得ます。私はあなたが最初のコールポートとして引っ張っているデータを調べることをお勧めします。手動でか、ctry/cfcatchを入力して、原因となっている行を絞り込みます。

+0

私はCF9でこれをテストしましたが、Tyranは正しいです。クエリ属性が必要です。 –

+0

私はこれらの2つのcfoutputを囲むクエリ属性を持つcfoutputを追加しています。これらは追加のグループ分けのためのものです。私はちょうど、エラーを投げているcfincludedファイルの2行を正確に指摘していた – froadie

+1

私はいくつかのdevsが** cfincludeを** cfinclude **を埋め込む問題を持っていた知っているが、インクルードはcfoutputのクエリデータを継承しないので、それは私が疑う問題の要点かもしれない? – Tyran67

0

あなたの問題はあなたがネストされた、グループ化されたのcfoutputタグのセットの途中でのcfincludeを行うことができないということであるならば、あなたは(単独作業コードを残し以外の)2つの選択肢が...持って

ワンクエリを引数としてとり、cfoutput文のセット全体を実行する関数を記述することです。

もう一つは、インクルードに必要なクエリのビットを含むいくつかのローカル変数を宣言することです - インクルードページと同じ変数スコープへのアクセス権を持ちます。それを考えると、クエリ変数への明示的な参照を使用していない可能性があります。クエリ変数自体が解決策になる可能性があります。従って代わりに:#foo#使用:#variables.queryname.foo#

+0

記録のために、私はそれがバグだとは確信していません。 –