2012-11-12 6 views
5

Coldfusion 9を使用しています。enablecfoutputonlyの現在の値を取得するにはどうすればよいですか?

特定のリクエスト中にenablecfoutputonlyがtrueに設定されているかどうかを簡単に知る方法はありますか?

+1

は、これをtrueに設定します。

<cfscript> out = getPageContext().getOut(); // Is the cfsetting enablecfoutputonly value currently true? isSettingEnabled = out.getDisableCount() > 0; WriteOutput("isSettingEnabled="& isSettingEnabled &"<br>"); // Is output currently allowed? isOuputtingEnabled = out.getDisableCount() == 0 || out.getOutputCount() > 0; WriteOutput("isOuputtingEnabled="& isOuputtingEnabled &"<br>"); </cfscript> 

..またはリフレクションを使用してあなたは本当にそれが本当に設定されていることを知っていますか? ; o) –

+1

これも知りたいです。 1ヶ月ほど前に疑問が出てきたので、これを検出する方法を見つけようと一生懸命やって空白を描きました。どこにでもあれば、getPageContext()オブジェクトのどこかに置かれます。 –

+0

私はあなたがバッファの価値を得ることができるかもしれないと思っています(Ben Nadel'sはそのブログエントリを持っています)、cfoutputを使わずに何かを追加してから、バッファが変更されたかどうかを確認します。 (今は自分で実験する時間がない) –

答えて

5

私は今、CF9でテストすることはできませんが、CF10には、出力オブジェクトをチェックしてgetPageContext()からアクセス可能である:、

<cfscript> 
    out = getPageContext().getOut(); 
    internalMethod = out.getClass().getDeclaredMethod("isOutputEnabled", []); 
    internalMethod.setAccessible(true); 
    isOuputtingEnabled = internalMethod.invoke(out, []); 
    // is output currently allowed? 
    WriteOutput("isOuputtingEnabled="& isOuputtingEnabled); 
</cfscript> 
+0

CF 9.0.1で少なくとも前者のオプションが動作していることを確認できます(後者はチェックしませんでした。 )。 –

+0

NB(これは必ずしも重要ではない):これは、 'getDisableCount()'と 'getOutputCount()'が実装されていないため、Railoでは*動作しません。 –

+0

誰でもgetDisabledCount()とgetOutputCount()の違いを知っていますか? –

関連する問題