2012-11-12 13 views
5

Wir verwenden Coldfusion 9.Wie kann ich den aktuellen Wert von enablecfoutputonly abrufen?

Gibt es einen einfachen Weg zu wissen, ob enablecfoutputonly während einer bestimmten Anfrage auf wahr gesetzt wurde?

+1

Set es wahr, dann weißt du sicher, dass es wahr ist? ; o) –

+1

Ich würde das auch gerne wissen. Die Frage kam woanders (oder vielleicht eine andere Frage hier, ich kann mich nicht erinnern) vor ungefähr einem Monat, und ich verbrachte den größten Teil des Tages damit, herauszufinden, wie ich das erkennen konnte, und zeichnete ein Leerzeichen. Wenn es irgendwo ist, wird es irgendwo im getPageContext() Objekt sein. –

+0

Ich denke, dass Sie in der Lage sein könnten, den Wert des Puffers zu erhalten (Ben Nadel hat einen Blogeintrag dazu), dann fügen Sie etwas hinzu, ohne cfoutput zu verwenden, und prüfen dann, ob sich der Puffer geändert hat? (Habe jetzt keine Zeit, um mich selbst zu experimentieren.) –

Antwort

5

ich jetzt mit CF9 nicht testen können, aber in CF10 ist es zugänglich von getPageContext() durch das Ausgangsobjekt Überprüfung:

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

.. oder mit Reflexion:

<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

Ich kann bestätigen, dass zumindest die frühere Option auf CF 9.0.1 funktioniert (ich habe letzteres nicht überprüft, da es wie ein Haufen zusätzlicher Arbeit für keinen Gewinn scheint). –

+0

NB (nicht dass das unbedingt wichtig ist): Dies funktioniert * nicht * auf Railo, da 'getDisableCount()' und 'getOutputCount()' nicht implementiert sind. –

+0

Wer kennt den Unterschied zwischen getDisabledCount() und getOutputCount()? –

Verwandte Themen