2012-11-12 21 views
5

Stiamo usando Coldfusion 9.Come posso recuperare il valore corrente di enablecfoutputonly?

C'è un modo semplice per sapere se enablecfoutputonly è stato impostato su true durante una particolare richiesta?

+1

Impostare a true, allora sai per certo che è stato impostato su true? ; o) –

+1

Mi piacerebbe saperlo anche questo. La domanda è arrivata altrove (o forse un'altra domanda qui, non riesco a ricordare) circa un mese fa, e ho trascorso la maggior parte della giornata cercando di scoprire come rilevarlo, e ho disegnato uno spazio vuoto. Se è ovunque, sarà nell'oggetto getPageContext() da qualche parte. –

+0

Sto pensando che potresti essere in grado di ottenere il valore del buffer (Ben Nadel ha un post di blog su questo), quindi aggiungere qualcosa senza usare cfoutput, quindi controllare se il buffer è cambiato? (Non ho tempo di sperimentare me stesso in questo momento.) –

risposta

5

Non posso test con CF9 in questo momento, ma in CF10 è accessibile da getPageContext() controllando l'oggetto di output:

<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 utilizzando la riflessione:

<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

Posso confermare che almeno l'ex opzione funziona su CF 9.0.1 (non ho controllato quest'ultimo, dato che sembra un mucchio di lavoro extra per nessun guadagno). –

+0

NB (non che questo sia necessariamente importante): questo * non * funziona su Railo, poiché 'getDisableCount()' e 'getOutputCount()' non sono implementati. –

+0

Qualcuno conosce la differenza tra getDisabledCount() e getOutputCount()? –

Problemi correlati