2012-11-12 12 views
5

Używamy Coldfusion 9.Jak pobrać bieżącą wartość enablecfoutputlyly?

Czy istnieje prosty sposób sprawdzenia, czy w przypadku konkretnego żądania została ustawiona prawda?

+1

Ustaw go na true, to wiesz na pewno, że zostało ustawione na prawdziwe? ; o) –

+1

Chciałbym to również poznać. Pytanie pojawiło się gdzieś indziej (a może jeszcze jedno pytanie tutaj, nie pamiętam) miesiąc temu i spędziłem najlepszą część dnia próbując dowiedzieć się, jak to wykryć, i narysowałem pustkę. Jeśli jest nigdzie, znajdzie się gdzieś w obiekcie getPageContext(). –

+0

Myślę, że możesz uzyskać wartość bufora (Ben Nadel ma wpis na blogu), a następnie dodać coś bez użycia cfoutput, a następnie sprawdzić, czy bufor się zmienił? (Nie mam czasu na eksperymentowanie w tej chwili.) –

Odpowiedz

5

nie mogę przetestować z CF9 teraz, ale w CF10 jest dostępny z getPageContext() zaznaczając obiekt wyjściowy:

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

.. lub przy użyciu odbicia:

<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

Mogę potwierdzić, że przynajmniej ta pierwsza opcja działa na CF 9.0.1 (nie sprawdzałem tego ostatniego, ponieważ wygląda na to, że wymaga dodatkowej pracy bez żadnego zysku). –

+0

NB (nie to musi mieć znaczenie): to * nie * działa na Railo, ponieważ 'getDisableCount()' i 'getOutputCount()' nie są zaimplementowane. –

+0

Ktoś wie różnicę między getDisabledCount() i getOutputCount()? –

Powiązane problemy