0

別のCFC(objCFC)のインスタンスを返すリモート関数を使用してCFC(webCFC)を取得しようとしています。

CFCは次のとおりです。

#webCFC
component { 
    remote function displayCFC(version=1) {
        if(version==1) {
            return new baseCFC();
        } else {
            return new objCFC();
        }
     }
 }

#baseCFC
component 
    accessors="true"
    persistent="true"
{
    property name="name" default="pete";    
}

#objCFC
component 
    extends="baseCFC"
    persistent="true"
    accessors="true"
{
    property name="age" default="30";
}

このURLを/webCFC.cfc?method=displayCFC&returnFormat=jsonと呼ぶと、次の応答が返されます。

{
"name" : "pete"
}

大丈夫です。このURLを/webCFC.cfc?method=displayCFC&returnFormat=json&version=2と呼ぶと、応答にbaseCFCのプロパティがありません。

{
"age" : 30
}

応答は次のようになると思います。

{
"name" : "pete",
"age" : 30
}

objCFCでsetName()関数とgetName()関数を使用できることはわかっています。これは、baseCFCを確実拡張していますが、ブラウザーからCFCにアクセスすると、拡張プロパティが表示されません。

これを機能させることは可能ですか?

4

1 に答える 1

0

これはバグに関連している可能性がありますseralizejson(いつバグがなくなるかはわかりません)。

回避策は、必要なすべてのプロパティを構造体で返す独自のメソッドgetMemento()またはメソッドを実装することです。toJSON()次にserializeJSON、代わりにその構造体。

于 2012-09-05T18:01:22.037 に答える